这是个算法题目 希望有备注
请问:问题描述主办方对于X博士情绪的挑战似乎永无止境,现在又给了他一个更加恶心的任务。主办方给出两个仅由字母组成的字符串(长度1-10),这两个字符串可能符合以下四种关系...
请问:问题描述
主办方对于X博士情绪的挑战似乎永无止境,现在又给了他一个更加恶心的任务。
主办方给出两个仅由字母组成的字符串(长度1-10),这两个字符串可能符合以下四种关系的一种:
1:两字符串长度不相等。比如 Beijing 和 Hebei
2:两字符串长度相等,并且相应位置上的字符完全相同(区分大小写),比如 Beijing 和 Beijing
3:两字符串长度相等,相应位置上的字符仅在不区分大小写时才算相同。(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
4:两字符串长度相等,但是即使不区分大小写也不能认为两个字符串相同。比如 Beijing 和 Nanjing
X博士的愤怒简直无法形容,这明显用不着我动手!甚至我的学生也不用!
可惜,比赛总还是要参加的……当然X博士肯定不去干这事。
作为X教授的苦逼学生,请你编程判断输入的两个字符串之间的关系属于这四种之中的哪一种,给出所属的关系的编号。
输入格式
包括两行,每行都是一个字符串
输出格式
仅有一个数字,表明这两个字符串的关系编号
样例输入
BEIjing
beiJing
样例输出
3
要求:所有题目结果输出时请严格按照题目样例说明输出,不要添加任何诸如“请输入……”“XXX结果为……”等多余内容,否则可能影响到你的成绩!
若无特殊注明,所有程序运行时间限制为1s,内存限制128MB,请尽量优化你的算法以满足要求。
要求提交每道题的算法和代码(算法要求用流程图、N-S图、伪代码或自然语言等来描述)。
给分标准: (1) 正确写出该题的算法和代码,并且运行结果正确,给60分;
(2) 算法较优,给20分;
(3) 代码简洁灵活,较好地掌握了该种程序设计语言,给20分。 展开
主办方对于X博士情绪的挑战似乎永无止境,现在又给了他一个更加恶心的任务。
主办方给出两个仅由字母组成的字符串(长度1-10),这两个字符串可能符合以下四种关系的一种:
1:两字符串长度不相等。比如 Beijing 和 Hebei
2:两字符串长度相等,并且相应位置上的字符完全相同(区分大小写),比如 Beijing 和 Beijing
3:两字符串长度相等,相应位置上的字符仅在不区分大小写时才算相同。(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
4:两字符串长度相等,但是即使不区分大小写也不能认为两个字符串相同。比如 Beijing 和 Nanjing
X博士的愤怒简直无法形容,这明显用不着我动手!甚至我的学生也不用!
可惜,比赛总还是要参加的……当然X博士肯定不去干这事。
作为X教授的苦逼学生,请你编程判断输入的两个字符串之间的关系属于这四种之中的哪一种,给出所属的关系的编号。
输入格式
包括两行,每行都是一个字符串
输出格式
仅有一个数字,表明这两个字符串的关系编号
样例输入
BEIjing
beiJing
样例输出
3
要求:所有题目结果输出时请严格按照题目样例说明输出,不要添加任何诸如“请输入……”“XXX结果为……”等多余内容,否则可能影响到你的成绩!
若无特殊注明,所有程序运行时间限制为1s,内存限制128MB,请尽量优化你的算法以满足要求。
要求提交每道题的算法和代码(算法要求用流程图、N-S图、伪代码或自然语言等来描述)。
给分标准: (1) 正确写出该题的算法和代码,并且运行结果正确,给60分;
(2) 算法较优,给20分;
(3) 代码简洁灵活,较好地掌握了该种程序设计语言,给20分。 展开
1个回答
展开全部
#include<iostream>
#include <string.h>
using namespace std;
char Lower(char c){
if(c>=65&&c<=90) return (char)c+32;
return c;
}
int Compare(char strA[],char strB[]){
unsigned int i=0;
if (strlen(strA)==strlen(strB)) // 两字符串长度相等
{
for(i=0;i<strlen(strA);i++){
if(Lower(strA[i])!=Lower(strB[i])) return 4; // 统一转换成小写仍然不相等
if(strA[i]==strB[i]) continue; // 区分大小写且字符亦相等
else return 3; // 不区分大小写、字符才相等
}
return 2;
}
return 1; // 两字符串长度不相等
}
int main()
{
char strA[100]={'\n'};
char strB[100]={'\n'};
cin>>strA;
cin>>strB;
cout<<Compare(strA,strB)<<endl;
system("pause");
return 0;
}
追问
XIE LE
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询