leetcode 748. 最短补全词(java & python3)
作者:互联网
java:
字符串记数 芜湖 谢谢题解!!!!
class Solution {
public String shortestCompletingWord(String licensePlate, String[] words) {
licensePlate = licensePlate.toLowerCase();
int[] ch = new int[26];
for (int i = 0; i < licensePlate.length(); i++) {
if (licensePlate.charAt(i) >= 'a' && licensePlate.charAt(i) <= 'z'){
ch[licensePlate.charAt(i) - 'a']++;
}
}
String res = null;
for(String word : words){
if(isCompletingWord(ch,word)){
if(res == null){
res = word;
continue;
}
if(res.length()>word.length()){
res = word;
}
}
}
return res;
}
public boolean isCompletingWord(int[] ch, String word){
int[] chh = new int[26];
for(int i = 0; i < word.length(); i++){
if(word.charAt(i) >= 'a' && word.charAt(i) <= 'z'){
chh[word.charAt(i) - 'a']++;
}
}
for(int i = 0; i < 26; i++){
if(ch[i] >chh[i]){
return false;
}
}
return true;
}
}
python3:
class Solution:
def shortestCompletingWord(self, licensePlate: str, words: List[str]) -> str:
cnt=Counter(ch.lower() for ch in licensePlate if ch.isalpha())
return min((word for word in words if not cnt - Counter(word)), key=len)
标签:licensePlate,word,补全,748,return,int,ch,java,String 来源: https://blog.csdn.net/qq_45908682/article/details/122319131