top1编程
← 返回题目
题解

字符串判等

1 条题解

  • 0
    @ 2026-8-5 10:18:17

    解题思路

    两个字符串可能含有空格,要求忽略空格后判断是否相等。

    做法:

    1. 用 getline 分别读入两行(因为可能含空格)。
    2. 把 a 里的空格全部去掉,得到新串 x;把 b 里的空格全部去掉,得到新串 y。
    3. 比较 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