AT—ケース・センシティブ 题解

· · 题解

题目传送门

更好的阅读体验?

思路:

  1. 如果给出的两个字符串直接相等,输出 same
  2. 否则,可以先判断这两个字符串长度是否相等,若不等就可以输出 different
  3. 若长度也相等,再把这两个字符串中的所有大写字母转为小写字母(也可以小写转大写),再进行判断。
    • 若两个字符串相等,输出 case-insensitive
    • 否则,输出 different

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a,b;//STL 大法好 
    cin>>a>>b;
    if(a==b) cout<<"same";//直接相等 
    else if(a.size()!=b.size()) cout<<"different";//长度不一样
    else
    {
        for(int i=0;i<=a.size()-1;i++)
        {
            //把 a,b 中的大写字母转为小写
            if(a[i]>='A'&&a[i]<='Z')  a[i]=a[i]+32;
            if(b[i]>='A'&&b[i]<='Z')  b[i]=b[i]+32;
        }
        if(a==b) cout<<"case-insensitive";//不区分大小写后相等 
        else cout<<"different";//没有别的情况了,肯定不同
    }
    cout<<endl;//AT 的题最后要有换行 
    return 0;
}