【藍橋杯】BASIC-15 字元串對比

  • 2019 年 11 月 13 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_42449444/article/details/102994074

題目描述:

給定兩個僅由大寫字母或小寫字母組成的字元串(長度介於1到10之間),它們之間的關係是以下4中情況之一: 1:兩個字元串長度不等。比如 Beijing 和 Hebei 2:兩個字元串不僅長度相等,而且相應位置上的字元完全一致(區分大小寫),比如 Beijing 和 Beijing 3:兩個字元串長度相等,相應位置上的字元僅在不區分大小寫的前提下才能達到完全一致(也就是說,它並不滿足情況2)。比如 beijing 和 BEIjing 4:兩個字元串長度相等,但是即使是不區分大小寫也不能使這兩個字元串一致。比如 Beijing 和 Nanjing 編程判斷輸入的兩個字元串之間的關係屬於這四類中的哪一類,給出所屬的類的編號。

輸入描述:

包括兩行,每行都是一個字元串。

輸出描述:

僅有一個數字,表明這兩個字元串的關係編號。

輸入樣例:

BEIjing  beiJing

輸出樣例:

3

解題思路:

水題,然而我一開始用if-else if-else還WA了一次,一氣之下直接return 0。

AC程式碼:

#include <bits/stdc++.h>  using namespace std;    int main()  {      ios::sync_with_stdio(false);      cin.tie(0),cout.tie(0);      string s1,s2;      cin >> s1 >> s2;      int len1 = s1.length(), len2 = s2.length();      if(len1 != len2)    //長度不等      {          cout << 1 << endl;          return 0;      }      if(s1==s2)   //長度相等且字元完全一致(區分大小寫)      {          cout << 2 << endl;          return 0;      }      transform(s1.begin(),s1.end(),s1.begin(),::tolower);      transform(s2.begin(),s2.end(),s2.begin(),::tolower);      if(s1 == s2)    //長度相等且字元不區分大小寫時才完全一致      {          cout << 3 << endl;      }      else    //長度相等且字元串不區分大小寫也不一致      {          cout << 4 << endl;      }      return 0;  }