【牛客 - 283C】模拟只会猜题意(简单模拟)
生活随笔
收集整理的這篇文章主要介紹了
【牛客 - 283C】模拟只会猜题意(简单模拟)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
?
小西突然覺得回文串是一種非常優雅的東西,她突然想要把身邊所有的字符串都變成回文!
所謂回文串就是一個倒置后仍與自身相等的字符串,如“gxuacmmcauxg”和“gxuacmcauxg”。
?
小西不喜歡單身狗,所以小西只會處理長度為偶數的字符串。
小西也不喜歡肥宅,所以小西處理的字符串只有小寫英文字母。
但是小西是個肥宅,不怎么喜歡活動,所以小西對于每個字母只會將其變為與其相鄰的字母,如‘b'可以變為'a'和'c','g'可以變為'f'和'h'。但是'a'只能變為'b',‘z’只能變為'y'。
小西雖然是肥宅,但也想要運動,所以她會把字符串的每一個字母都進行一次變換。
_(:з」∠)_
現在請聰明的你來救救肥宅,判斷小西能否將該字符串變為回文。
?
輸入描述:
?第一行為一個整數T,表示數據組數
接下來行為T組數據
每組數據第一行為一個整數n表示字符串的長度
第二行為小西將要處理的字符串
?
輸出描述:
對于每組數據,若小西能夠將其變為回文則輸出一行一個數字1否則輸出一行一個數字0?
示例1
輸入
復制
2 2 zb 6 abccba輸出
復制
0 1解題報告:
? 第一位和最后一位特殊處理一下,剩下的一定差2,,第一次寫成了差3了。。白WA一發。。按照題干處理就行了、
AC代碼:
#include<bits/stdc++.h>using namespace std; char s[1005]; int len; int main() {int t;cin>>t;while(t--) {scanf("%d",&len);scanf("%s",s+1);if(len%2 == 1 || len != strlen(s+1)) {puts("0");continue;}int flag =1;for(int i = 1; i<=len; i++) {if(isupper(s[i])) flag = 0;}for(int i = 1; i<=(len); i++) {if(s[i] == 'a') {if(s[len-i+1] != 'a' && s[len-i+1] != 'c') flag=0;}if(s[i] == 'z') {if(s[len-i+1] != 'z' && s[len-i+1] != 'x') flag=0;}}if(flag == 0) {puts("0");continue;}for(int i = 1; i<=(len/2); i++) {if(s[i] == s[len-i+1]) continue;int d = len-i+1;if(abs(s[d]-s[i]) != 2) flag = 0;}if(flag == 0) {puts("0");}else puts("1");}return 0 ; }?
總結
以上是生活随笔為你收集整理的【牛客 - 283C】模拟只会猜题意(简单模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nbr.exe - nbr是什么进程 有
- 下一篇: nclaunch.exe - nclau