两种方法,都过了
2026-07-24 22:06:11
发布于:安徽
11阅读
0回复
0点赞
这题是黄?
F1:
comm way:
#include<bits/stdc++.h>
using namespace std;
bool acgo(string s) {
int len = s.size();
if (len <= 1)return 1;
if (s[0] != s[len - 1])return 0;
else s = s.substr(1, len - 2);
return acgo(s);
}
int main() {
string s;
cin >> s;
if (acgo(s))cout << "Yes";
else cout << "No";
}
解释:将s反向存入ss,判断是否相等。
F2:
递归:
#include<bits/stdc++.h>
using namespace std;
bool acgo(string s) {
string ss = "";
int len = s.size();
for (int i = len - 1; i >= 0; i--) {
ss += s[i];
}
return ss == s;
}
int main() {
string s;
cin >> s;
if (acgo(s))cout << "Yes";
else cout << "No";
}
解释:若s两端字符相同,除去这两个字符,继续比。否则不是。
这里空空如也



有帮助,赞一个