0
点赞
收藏
分享

微信扫一扫

构造回文串

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

bool palindrome(string s)
{
    int n, i;
    n = s.size() - 1;
    for (i = 0; i <= n / 2; i++)
    {
        if (s[i] != s[n - i])
        {
            return false;
        }
    }
    return true;
}

int main()
{
    int len = 0;
    string str;
    bool flag = false;
    cin >> str;
    len = str.size();
    reverse(str.begin(), str.end());
    for (int i = 0; i < len; i++)
    {
        if (palindrome(str))
        {
            flag = true;
            break;
        }
        str += '0';
    }
    if (flag)
    {
        cout << "Yes" << endl;
    }
    else
    {
        cout << "No" << endl;
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

bool Judge(char *buf)
{
    int cntz = 0, l, r;
    for (l = 0; buf[l] && buf[l] == '0'; l++)
    {
        cntz++;
    }
    for (r = strlen(buf) - 1; r >= 0 && buf[r] == '0'; r--)
    {
        cntz--;
    }
    if (cntz > 0)
    {
        return false;
    }
    for (; l < r; l++, r--)
    {
        if (buf[l] != buf[r])
        {
            return false;
        }
    }
    return true;
}

int main()
{
    char buf[100];
    while (scanf("%s", buf) != EOF)
    {
        printf(Judge(buf) ? "Yes\n" : "No\n");
    }
    return 0;
}
举报

相关推荐

0 条评论