分別使用C和C++判斷字串迴文
阿新 • • 發佈:2018-12-28
迴文串:字串字元從前往後與從後往前一致(中心對稱)
C語言判斷迴文串:
#include <stdio.h> #include <string.h> int main() { char a[105]; int i,l; while(scanf("%s",a)!=EOF)//多組輸入 { l=strlen(a);//取字串長度 for(i=0;i<l/2;i++) { if(a[i]!=a[l-i-1]) {printf("no\n");break;}//對稱位不等,不是迴文,退出迴圈 } if(i>=l/2) printf("yes\n");//對比次數大於字串長一半,是迴文 } return 0; }
截圖:
C++用棧判斷迴文串:
#include<iostream> #include<string> #include<cstdlib> #include<stack> using namespace std; int main() { string a; while(1)//多組輸入 { cin>>a; int i,flag=1;//標誌位為1 char b; stack<char> q; for(i=0;i<a.length();i++) { q.push(a[i]);//依次入棧 } for(i=0;i<a.length();i++) { b=q.top();//取棧頂 if(b!=a[i]) {flag=0;break;}//棧頂與相應位字元不同,非迴文,標誌位改為0,退出迴圈 q.pop();//出棧 } if(flag) cout<<"Yes"<<endl;//標誌位為1,是迴文 else cout<<"No"<<endl;//標誌位改變,非迴文 } return 0; }