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();
}
}