题解
字符串判等
1 条题解
-
0
解题思路
两个字符串可能含有空格,要求忽略空格后判断是否相等。
做法:
- 用
getline分别读入两行(因为可能含空格)。 - 把
a里的空格全部去掉,得到新串x;把b里的空格全部去掉,得到新串y。 - 比较
x和y是否完全相等,相等输出YES,否则输出NO。
注意:比较时大小写是敏感的。样例里
aB c去掉空格是aBc,a bc去掉空格是abc,两者不相等,所以输出NO。举例:
a b c和ab c去掉空格后都是abc,所以输出YES。参考代码
// 字符串判等:忽略空格后判断两个字符串是否相等 #include <iostream> using namespace std; int main() { string a, b, x = "", y = ""; // x、y分别去掉空格后的两串 getline(cin, a); // 两行都可能含空格,用getline读整行 getline(cin, b); for (int i = 0; i < (int)a.size(); i++) if (a[i] != ' ') x += a[i]; // 跳过空格,保留其它字符 for (int i = 0; i < (int)b.size(); i++) if (b[i] != ' ') y += b[i]; cout << (x == y ? "YES" : "NO") << endl; // 去掉空格后比较 return 0; }复杂度分析
两个字符串长度都不超过 255。各自扫描一遍去掉空格,再比较一遍,时间复杂度 O(n1+n2),空间 O(n1+n2)。
- 用
- 1