排列对称串 Time Limit:1000MS Memory Limit:32768K
123321 123454321 123 321 sdfsdfd 121212 \\dd\
123321 \\dd\123454321
#include <cstdio>
#include <iostream>
#include <string>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;
bool Comp(const string &s1,const string &s2)
{ return s1.length()!=s2.length() ? s1.length()<s2.length() : s1<s2; }
int main()
{
vector<string>v;
string t,s;
while (cin>>s)
{
t=s; //s 保存到 t ,,,,, t 不会改变
//反转字符串,用来判断字符是否对称
reverse(t.begin(),t.end()); //对称-----反转
if (t==s) // 反转后的s------压栈进入 向量容器vector
{ v.push_back(s); }
}
// 排序
sort(v.begin(),v.end(),Comp);
//输出向量中的所有元素
for (int i=0;i<v.size();i++)
{ cout<<v[i]<<endl; }
return 0;
}
原文:http://www.cnblogs.com/2014acm/p/3876450.html