場景
面試官: 你這邊對回文字符串有沒有了解? 能找出任意一個字符串中長度最長的回文字符串嗎?
ME: ......
面完后去了解了一下回文字符串, 在此簡單記錄一下.
什么是回文字符串?
“回文串”是一個正讀和反讀都一樣的字符串,比如“abcba”或者“noon”等等就是回文串抡诞。
代碼實現(xiàn)
對于面試官的問題, 私下寫了一個實現(xiàn)法案, 測試了一下,能滿足這個需求~
/**
* 找出字符串中最大的回文字符串
* @param str 傳入的字符串
* @return
*/
private String getMaxHuiWenStr(String str) {
int length = str.length();
String maxString = "";
for (int i = 0; i < length; i++) {
for (int j = i + 1; j <= length; j++) {
String tempStr = str.substring(i, j);
if (isHuiWenStr(tempStr) && tempStr.length() > maxString.length()) {
maxString = tempStr;
}
}
}
return maxString;
}
private boolean isHuiWenStr(String str) {
if (str.length() == 1) {
return false;
}
boolean flag = true;
int length = str.length();
char[] tempChar = str.toCharArray();
for (int i = 0, j = length - 1; i <= j; i++, j--) {
if (tempChar[i] != tempChar[j]) {
flag = false;
}
}
return flag;
}