题解 | #统计回文#
统计回文
https://www.nowcoder.com/practice/9d1559511b3849deaa71b576fa7009dc
统计回文
/* 2022年09月10日 11:35:10 遍历str1的位置,挨个插入str2,并判断是否为回文串 注意拷贝一份str1,而不能直接修改str1 */ #include <iostream> #include <string> using namespace std; bool IsPalindrome(string& s){ int begin = 0, end = s.size()-1; while(begin < end){ if(s[begin] != s[end]) return false; ++begin, --end; } return true; } int main() { string str1, str2; cin >> str1 >> str2; // str1的最后也要能够插入 int count = 0; for(int i = 0; i <= str1.size(); ++i) { string tmp(str1); tmp.insert(i, str2); if(IsPalindrome(tmp)) ++count; } cout << count << endl; return 0; }
/* 2022年09月10日 11:40:42 遍历str1的位置,挨个插入str2,并判断是否为回文串 注意拷贝一份str1,而不能直接修改str1 判断回文也可以翻转之后 直接比较字符串是否相等 */ #include <iostream> #include <string> #include <algorithm> using namespace std; bool IsPalindrome(string& s){ string tmp = s; reverse(s.begin(), s.end()); if(s == tmp) return true; else return false; } int main() { string str1, str2; cin >> str1 >> str2; // str1的最后也要能够插入 int count = 0; for(int i = 0; i <= str1.size(); ++i) { string tmp(str1); tmp.insert(i, str2); if(IsPalindrome(tmp)) ++count; } cout << count << endl; return 0; }