1027A. Palindromic Twist#變形迴文串

題目內容: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

相關文章
相關標籤/搜索