篩選出對稱字符串,然后將其排序。
輸入樣例:
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;
}