“回文串”是一個正讀和反讀都一樣的字元串,比如“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;}