要求:给定一个字符串数组,判断出所有的回文字符串
class Solution {
public List<List<Integer>> palindromePairs(String[] words) {
// 出参
List<List<Integer>> result = new ArrayList();
// 入参判断 空数组?
// 1.字段两两对拼
for (int i = 0; i < words.length; i++) {
for (int j = 0; j < words.length; j++) {
if (i == j) {
continue;
}
String temp = words[i] + words[j];
// 2.判断当前串是否为回文字符串
if (isCopyStr(temp)) {
// 3.统计回文串并输出
List<Integer> indexList = new ArrayList();
indexList.add(i);
indexList.add(j);
result.add(indexList);
}
}
}
return result;
}
/**
* 回文串判断
*/
public boolean isCopyStr(String temp) {
// 入参判断 空串?
// 两种方式? 先采用最简单的,字符依次比较?
int length = temp.length();
if (length == 1) {
return true;
}
int index = length - 1;
char[] chars = temp.toCharArray();
// 从头往尾开始匹配
for (int i = 0; i < length; i++) {
if (i > (index - i)) {
break;
}
char left = chars[i];
char rigth = chars[index - i];
if (left != rigth) {
return false;
}
}
return true;
}
}