【藍橋杯】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; }