用C++实现Description: 很多字韦,有些是对称的,有些是不对称的,请将那些对称的字串按从小到大的顺序输出。字串先以长度论大小,如果长度相同,再以ASCI码值为大小标准。Input: 输入数据中含有一些字串( 1s串长≤256 )。 Output: 根据每个字串,输出对称的那些串, 并且要求按从小到大的顺序输出。
时间: 2023-06-17 07:02:47 浏览: 81
以下是使用 C++ 实现的代码:
```c++
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
bool isSymmetry(string s) { // 判断字符串是否对称
int len = s.length();
for(int i = 0; i < len/2; i++) {
if(s[i] != s[len-i-1]) {
return false;
}
}
return true;
}
bool cmp(string A, string B) { // 按照题目要求排序
if(A.length() != B.length()) {
return A.length() < B.length();
}
return A < B;
}
int main() {
string s[1000];
int n = 0;
while(cin >> s[n]) { // 输入数据
n++;
}
sort(s, s+n, cmp); // 排序
for(int i = 0; i < n; i++) {
if(isSymmetry(s[i])) { // 判断是否对称
cout << s[i] << endl;
}
}
return 0;
}
```
这个程序的思路是先输入所有的字符串,然后使用 `sort` 函数按照题目要求对它们进行排序,最后遍历每个字符串并判断是否对称,对称则输出。
阅读全文