验证外星语词典 - C++力扣953题
题目链接:https://leetcode.com/problems/verifying-an-alien-dictionary/description/
解题思路
字典序比较其实就是入门级问题,就是加了个重定义顺序而已。这题有手就行。首先我们先把字典序记录下来,然后弄一个函数来一个一个的比较,按照力扣给的条件写就行。然后基本上遍历一遍没有不符合条件的话就直接返回 true
就行。
完整代码:
class Solution {
public:
int dict[26] = {0};
bool compare(string s1, string s2) {
int j = 0;
while(j < s1.size() && j < s2.size()) {
if(s1[j] == s2[j]) j++;
else if(dict[s1[j] - 'a'] > dict[s2[j] - 'a']) return false;
else return true;
}
if(s1.size() > s2.size()) return false;
return true;
}
bool isAlienSorted(vector<string>& words, string order) {
for(int i = 0; i < order.size(); i++) dict[order[i] - 'a'] = i;
for(int i = 1; i < words.size(); i++) {
string s1 = words[i - 1], s2 = words[i];
if(compare(s1, s2) == false) return false;
}
return true;
}
};
版权属于:江筱雨
本文链接:https://www.yuisblog.com/archives/226/
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!