回文串

“回文串”是一個正讀和反讀都一樣的字元串,比如“level”或者“noon”等等就是回文串。

基本介紹

  • 中文名:回文串
  • 概念:正讀和反讀都一樣的字元串
  • 例如:level、noon
  • 算法:初始化標誌flag=true
算法,Java實現該算法,c/c++實現該算法,

算法

1、初始化標誌flag=true;
2、輸入字元串str,並獲取其長度len;
3、定義並初始化游標i=0,j=len-1,分別指向字元串開頭和末尾;
4、比較字元str[i]和str[j],若i==j,轉至7,否則往下執行5;
5、若str[i]和str[j]相等,則游標i加1,游標j減1後轉至4,否則往下執行6;
6、令標誌位flag=flase,結束比較,str不是回文串,算法結束。
7、若str[i]和str[j]相等,結束比較,flag=true,str為回文串,算法結束。

Java實現該算法

public static boolean check(String str){    if(null == str || "".equals(str)){            return false     }     int i = 0;     int j = str.length() - 1;     String[] strings = str.split("");     boolean flag = false;     for (; i <= j; i++,j--) {         if(!strings[i].equals(strings[j])){             return false;         }     }     return true;}

c/c++實現該算法

#include <iostream>#include <string>using namespace std;int main(){    string str;    int i,j,l;    int flag = 1;    while (cin >> str)    {        l = str.length();        for (i = 0,j = l-1; i <= j; i++,j--)        {            if (str[i] != str[j])            {                flag = 0;                break;            }        }        if (flag)            cout << "YES" << endl;        else            cout << "NO" << endl;        flag = true;    }    return 0;}

相關詞條

熱門詞條

聯絡我們