文章

37

粉丝

1

获赞

81

访问

7.1k

头像
变位词 题解:
P1032
发布于2026年3月22日 23:09
阅读数 167

#include<iostream>
#include<string>
using namespace std;

int main() {
    int n;
    cin >> n;
    while (n--) {
        string s1, s2;
        cin >> s1 >> s2;
        bool isMatch = true;

        // 第一步:先校验长度,长度不同直接不匹配(关键优化)
        if (s1.length() != s2.length()) {
            cout << "No" << endl;
            continue;
        }

        // 第二步:统一转为大写(也可以转小写,逻辑一致)
        for (int i = 0; i < s1.length(); i++) {
            if (s1[i] >= 'a' && s1[i] <= 'z') {
                s1[i] -= 32; // 小写转大写,ASCII码减32
            }
        }
        for (int i = 0; i < s2.length(); i++) {
            if (s2[i] >= 'a' && s2[i] <= 'z') {
                s2[i] -= 32;
            }
        }

        // 第三步:创建标记数组,记录s2的字符是否已被匹配使用
        bool used[1000] = {false}; // 数组大小设大一点,适配常规输入长度
        int len = s1.length();

        // 第四步:双层循环匹配字符
        for (int i = 0; i < len; i++) {
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发