筛选出对称字符串,然后将其排序。
输入样例:
123321
123454321
123
321
sdfsdfd
121212
\\dd\\
输出样例
123321
\\dd\\
123454321
#include<fstream>
#include<iostream>
#include<string>
#include<set>
using namespace std;bool isSymmetry(string);//判断字符串是否为对称struct strComp{//将字符串用set进行排序bool operator()(const string &s1, const string &s2){if (s1.length() != s2.length())return s1.length() < s2.length();elsereturn s1 < s2;}
};int main(){ifstream cin("data.txt");string str;set<string, strComp> strSet;while(cin >> str){if (isSymmetry(str))strSet.insert(str);}for(set<string, strComp>::iterator it = strSet.begin(); it != strSet.end(); ++it)cout << *it << endl; return 0;
} bool isSymmetry(string str){int i = 0;int j = str.length() - 1;bool flag = true;while(i <= j){if (str[i++] != str[j--]){flag = false;break;}}return flag;
}