阿里笔试第一题

阿里Android第一题
问题:两个字符串a和b长度相同(只包含小写字母),长度为m,求字典序在a和b之间(不包括a和b本身)长度为m 的字符串的个数。
测试用例
4
1  z a
1  a z
2 az bb
3 bbb bbb
输出
0
24
1
0
例如,aa 到az之间存在24个字符串;aa 到ba则有25个字符串
其实这题很简单 只不过思路要转换一下
你可以化为数字序456和123之间有多少个数字的问题
而使用字母去代替数字 那么只不过是10进制变成26进制
比如abc和def之间有多少个字典序字符串 就和123到456之间有多少个数字一样
那么我只要将adb和def之间的差值找到就可以知道他们之间有多少个符合条件的字符串
例如当a=" kcnmi ";b=" lgtqj"
结果是531440
// 本题为考试多行输入输出规范示例,无需提交,不计分。
#include <iostream>
#include <cstdio>

using namespace std;

int main() {
	int count = 1;
	int len = 0;
	string str1, str2;
	cin >> count;
	int sum = 0;
	for (int i = 0; i< count; i++) {
		for (int j = 0; j < count; j++)
		{
			cin >> len;
			cin >> str1;
			cin >> str2;
			int* foo = new int[len];
			for (int i = 0; i < len; i++) {
				foo[i] = str2[i] - str1[i];
			}
			for (int i = 0; i < len; i++) {
				sum += foo[i] * pow(26, len - i - 1);
			}
			cout << endl;
			if (sum >= 1) {
				cout << sum - 1;
			}
			else {
				cout << 0;
			}
		}
	}
	return 0;
}


#笔试题目##阿里巴巴#
全部评论
请问你这个代码是AC了的吗?
点赞 回复 分享
发布于 2020-08-28 00:07
老哥,这AC100了么,我相同的思路,AC30
点赞 回复 分享
发布于 2020-08-26 12:09

相关推荐

ros275229:社团删了吧,cf因该1200才勉强入门吧,也删了,你可以写算法刷了多少道,都比这个好
点赞 评论 收藏
分享
2025-12-19 19:02
西安交通大学 Java
程序员牛肉:双九,而且还是西交这种比较好的985九没必要再投日常了。你投中小厂,人家会觉得你学历这么顶还面试肯定是海投的,过了你也不去。所以不约你了。 直接准备暑期实习就好,现在你可以面试。但是目的不再是去日常实习了,而是熟悉面试节奏。 后续把精力放到八股,算法和AI知识上。抽空把自己这两个项目换了,怎么选项目可以看看我主页写的文章。 你学历不错的,不要焦虑
那些拿到大厂offer的...
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务