1 条题解

  • 0
    @ 2026-5-4 22:14:08

    解题思路

    只有当字符串中的所有字母都相同时,答案才是 1-1。为什么呢?因为如果我们至少有两个不同的字母,就可以把其中一个字母放在字符串的第一个位置,另一个不同的字母放在最后一个位置,这样得到的字符串显然不是回文串(因为首尾字符不同)。

    我们可以这样实现:对字符串 sis_i 进行排序,如果排序后的第一个字符等于最后一个字符(即所有字符相同),则输出 1-1;否则输出排序后的字符串。


    C++ 代码实现

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int t;
        cin >> t;
        while (t--) {
            string s;
            cin >> s;
            sort(s.begin(), s.end());
            if (s[0] == s.back()) {
                cout << "-1\n";
            } else {
                cout << s << '\n';
            }
        }
        return 0;
    }
    • 1

    信息

    ID
    6846
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者