杭電OJ2029迴文串——Palindromes _easy version(C語言解析)
題目地址
Palindromes _easy version
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 71835 Accepted Submission(s): 43244
Problem Description
“迴文串”是一個正讀和反讀都一樣的字串,比如“level”或者“noon”等等就是迴文串。請寫一個程式判斷讀入的字串是否是“迴文”。
Input
輸入包含多個測試例項,輸入資料的第一行是一個正整數n,表示測試例項的個數,後面緊跟著是n個字串。
Output
如果一個字串是迴文串,則輸出"yes",否則輸出"no".
Sample Input
4
level
abcde
noon
haha
Sample Output
yes
no
yes
no
這道題,是比較簡單的迴文判斷,判斷迴文,我們可以採取兩天並進的方法來判斷,就是第一個和最後一個比較,第二個和倒數第二的比較,直到比較到前後差距不大於1,即重疊或相鄰,如果中間比較的不相同,直接跳出判斷,這肯定不是迴文串。我是以一個數來做標記,1就是yes,0是no。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void){
int n,i,j,m,t;
int *a; //儲存判斷結果
char *s; //儲存輸入的字串
a=(int *)malloc(sizeof(int)*100);
s=(char *)malloc(sizeof(char)*100);
while(scanf("%d",&n) != EOF){
t=0;
while(n--){
scanf("%s",s);
m=strlen(s);
j=1; //t作為標記,1是YES,0是NO
for(i=0;i<m/2;i++){ //判斷迴文串
if(s[i] != s[m-1-i]){
j=0;
break;
}
}
a[t]=j;
t++;
}
for(i=0;i<t;i++){
if(a[i]==1){
printf("yes\n");
}
else{
printf("no\n");
}
}
}
return 0;
}
相關文章
- C語言訓練之杭電OJC語言
- acm-(區間dp、迴文串、子序列)ICPC SG Preliminary Contest 2018 C - Making PalindromesACM
- C語言:迴文數計算C語言
- c語言_遞迴C語言遞迴
- C語言:判斷一個字串是否為迴文C語言字串
- C語言 不大於2019的最大反數、迴文數C語言
- C語言:利用指標檢查字串是否是迴文C語言指標字串
- P1217 [USACO1.5] 迴文質數 Prime Palindromes
- Catch the Mole(Easy Version)
- Prefix Flip (Easy Version)
- 迴文串問題(動態規劃DP C++)動態規劃C++
- 一文帶你掌握C語言的迴圈結構C語言
- C#語言函式遞迴C#函式遞迴
- 1203- 最長迴文串
- leedcode-最長迴文串
- LeetCode - 409 - 最長迴文串LeetCode
- 省錢構建迴文串
- java 最長迴文子串Java
- C語言遞迴之母牛的故事C語言遞迴
- LeetCode125. 驗證迴文串LeetCode
- 5. 最長迴文子串
- Easy Translator語言翻譯類工具R語言
- so easy 前端實現多語言前端
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 每日一練(40):驗證迴文串
- 最長迴文子串 -- 三種解答
- LeetCode 5.最長迴文子串LeetCode
- 一文看懂 C 語言 I/O
- C語言-for迴圈之窮舉法練習C語言
- C語言學習【3】——判斷與迴圈C語言
- CodeForces 1883G1 Dances (Easy version)
- C語言運算子深度解析--超詳細C語言
- 【每日一題】125. 驗證迴文串每日一題
- Leetcode[字串] 5. 最長迴文子串LeetCode字串
- 每日一算--最長迴文子串
- 常用演算法之驗證迴文串演算法
- 演算法-兩最長迴文子串演算法
- LeetCode-5. 最長迴文子串(Manacher)LeetCode