1657. 确定两个字符串是否接近
小于 1 分钟
1657. 确定两个字符串是否接近中等
解法:
建立两个长度为 26 的数组,存放对应字母的出现次数。
判断是否有在 word1
中出现而不在 word2
出现的字符,若有返回 false
对两个数组排序,顺序比较对应的数是否相等
class Solution {
public boolean closeStrings(String word1, String word2) {
int[] nums1 = new int[26];
int[] nums2 = new int[26];
for (char c : word1.toCharArray()) nums1[c - 'a']++;
for (char c : word2.toCharArray()) nums2[c - 'a']++;
for (int i = 0; i < 26; i++) {
if(nums1[i] + nums2[i] == 0) continue;
if(nums1[i] == 0 || nums2[i] == 0) return false;
}
Arrays.sort(nums1);
Arrays.sort(nums2);
for (int i = 0; i < 26; i++) {
if(nums1[i] != nums2[i]) return false;
}
return true;
}
}
Powered by Waline v2.15.5