class Solution {
int[] mp;
public boolean isAlienSorted(String[] words, String order) {
initMp(order);
int len = words.length;
for(int i = 0;i < len - 1;i ++) {
if(!compare(words[i], words[i+1])) {
return false;
}
}
return true;
}
private void initMp(String s) {
mp = new int[26];
for(int i = 0;i < 26;i ++) {
mp[s.charAt(i) - 'a'] = i;
}
}
private boolean compare(String a, String b) {
int len = Math.min(a.length(), b.length());
for(int i = 0;i < len; i++) {
if(a.charAt(i) != b.charAt(i)) {
return mp[a.charAt(i) - 'a'] < mp[b.charAt(i) - 'a'];
}
}
return a.length() <= b.length();
}
}
Leetcode_953_验证外星语词典_map
最新推荐文章于 2023-05-28 23:42:17 发布
这篇博客介绍了一个用于检查单词是否按照给定字符顺序排列的算法。它包含一个Solution类,里面有两个方法:isAlienSorted()用于判断单词数组是否按照特定字符顺序排序,以及initMp()用于初始化字符到它们在顺序中位置的映射。该算法首先初始化字符映射,然后逐对比较单词,确保每个后续单词都按照指定顺序排列。
689

被折叠的 条评论
为什么被折叠?



