2451. 差值数组不同的字符串
# 2451. 差值数组不同的字符串 (opens new window)
解题思路:改变循环内外层顺序,可以不用另外开辟空间保存差值数组,空间O(1)
外层循环控制字符串长度,内层循环控制字符串个数。相当于先固定字符位置,判断所有字符串在该位置的差值是否相同。以words[0]第一个字符串的差值作为基准。
class Solution {
public String oddString(String[] words) {
for(int i=1;i<words[0].length();i++){
int curr0=words[0].charAt(i)-words[0].charAt(i-1);
int curr1=words[1].charAt(i)-words[1].charAt(i-1);
int curr2=words[2].charAt(i)-words[2].charAt(i-1);
if(curr2==curr1&&curr0!=curr1) return words[0];
}
for(int i=1;i<words[0].length();i++){
int curr=words[0].charAt(i)-words[0].charAt(i-1);
for(int j=0;j<words.length;j++){
int dif=words[j].charAt(i)-words[j].charAt(i-1);
if(dif!=curr) return words[j];
}
}
return words[0];
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57