题解 CF863A 【Quasi-palindrome】

SocietyNiu

2018-02-27 10:53:58

Solution

## ~~日常水题~~ 这道题十分的简单,主要的思路是调转字符串后根据前导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; } ```