題目內容:http://codeforces.com/contest/1027/problem/Aios
題目解析:輸入T組字符串,每一個字符串都必須改變一次,每一個字母改變的規則是變成相鄰的字母,字母a只能變b,z只能變y。改變後 的字符依舊是否可以變成迴文串,就輸出YES,不然就輸出NO。注意,相鄰的字母並無固定是左邊還右邊,因此要考慮分紅兩種狀況,一種自己就是迴文串的就輸出YES,不是迴文串的判斷對應位置字符asc碼差是否等於2。spa
#include<iostream> #include<cmath> using namespace std; int main() { int n,t,flag; string s; cin>>t; while(t--) { flag=0; cin>>n>>s; for(int i=0; i<n/2; i++) if(s[i]!=s[n-i-1]&&abs(s[i]-s[n-i-1])!=2) {//用ascll碼理解,知足:既不相等且相差非2 puts("NO"); flag=1; break; } if(!flag)puts("YES"); } return 0; }
參考出處:https://blog.csdn.net/memory_qianxiao/article/details/81838111.net