中兴笔试题 10/13 passed不知道什么错了

加密字符串:原字符+离单词末尾的距离;
如 abcde加密后eeeee;当然z加一变成a;再如,abcd xyzb变成dddd aaab
 已经保证字符串为小写字母,单词间隔为一个空格。
 char* encryp(char* str)
{
	if (str == NULL) return NULL;
	int len = strlen(str);
	char *result = new char[len + 1];
	result[len] = '\0';
	int dis = 0;
	for (int i = len - 1;i >= 0;i--)
	{
		if (str[i] == ' ')
		{			dis = 0;
			result[i] = ' ';
		}
		else
		{
			if (str[i] + dis > 'z')
				result[i] = str[i] + dis - 'z' + 'a' - 1;
			else
				result[i] = str[i] + dis;
			dis++;		}
	}
	return result;
}

#中兴#
全部评论
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <vector> #include <string> #include <stdlib.h> #include <stdio.h> using namespace std; //题目要求: /******************************************************** 加密字符串:原字符+离单词末尾的距离; 如 abcde加密后eeeee;当然z加一变成a;再如,abcd xyzb变成dddd aaab 已经保证字符串为小写字母,单词间隔为一个空格。 *****************************************************************/ int main() { string str; while (cin >> str) { for (int i = 0; i < str.length(); i++) { if (str[i] + str.length() - i - 1 <= 'z') printf("%c",str[i] + str.length() - i - 1); else printf("%c", 'a'); } cout << endl; } }
点赞 回复 分享
发布于 2016-09-07 15:54
我是减去的26,应该对26取余。。。。。。。。。。。。
点赞 回复 分享
发布于 2016-08-31 23:01
我也是,。。。
点赞 回复 分享
发布于 2016-08-31 23:00
dis有可能大于26,也就是有可能有一个很长的单词,超过26大小,所以有这种情况 , 应该加上一个 dis %= 26. 我开始也是10\13,考虑到这种情况就OK了
点赞 回复 分享
发布于 2016-08-31 18:49

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
11
分享

创作者周榜

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