SocietyNiu 的博客

SocietyNiu 的博客

题解 CF863A 【Quasi-palindrome】

posted on 2018-02-27 10:53:58 | under 题解 |

日常水题

这道题十分的简单,主要的思路是调转字符串后根据前导0添加后导0,最后再判断字符串是否相等,代码如下

#include<iostream>
using namespace std;
void turn(string &n)//自定义翻转函数,必须&!是传址调用
{
    string a;
    for(int i=n.length()-1;i>=0;i--)
        a+=n[i];//string的好处,可以直接加到后面的!!
    n=a;
}
int main()
{
    string n;cin>>n;
    turn(n);//先翻转
    int begin=0;
    while(n[begin]=='0') //前导0决定循环,而循环决定添加的后导0个数
        n+='0',begin++;//string好处,可以直接加
    string b;
    b=n;//先保存n
    turn(n);//再翻转
    if(n==b) cout<<"YES";
    else cout<<"NO";
    return 0;
}