1. 程式人生 > >分別使用C和C++判斷字串迴文

分別使用C和C++判斷字串迴文

迴文串:字串字元從前往後與從後往前一致(中心對稱)

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;
}