zjut 1208排列对称串

排列对称串  Time Limit:1000MS  Memory Limit:32768K

Description:

很多字串,有些是对称的,有些是不对称的,请将那些对称的字串按从小到大的顺序输出。字串先以长度论大小,如果长度相同,再以ASCII码值为大小标准。

 

Input:

输入数据中含有一些字串(1≤串长≤256)。

Output:

根据每个字串,输出对称的那些串,并且要求按从小到大的顺序输出。

Sample Input:

123321
123454321
123
321
sdfsdfd
121212
\\dd\\

Sample Output:

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;

}

 

转载于:https://www.cnblogs.com/2014acm/p/3876450.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值