统计回文

统计回文

/*
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;
}