Given a list of strings dict
where all the strings are of the same length.
Return true
if there are 2 strings that only differ by 1 character in the same index, otherwise return false
.
Example 1:
Input: dict = ["abcd","acbd", "aacd"] Output: true Explanation: Strings "abcd" and "aacd" differ only by one character in the index 1.
Example 2:
Input: dict = ["ab","cd","yz"] Output: false
Example 3:
Input: dict = ["abcd","cccc","abyd","abab"] Output: trues
思路:每个index定位,然后把他们去掉,看set里面有没有;O(n m ^2);
class Solution {
public boolean differByOne(String[] dict) {
for(int i = 0; i < dict[0].length(); i++) {
HashSet<String> set = new HashSet<>();
for(String w: dict) {
String newstr = w.substring(0, i) + w.substring(i + 1);
if(set.contains(newstr)) {
return true;
}
set.add(newstr);
}
}
return false;
}
}