编程语言
首页 > 编程语言> > leetcode 748. 最短补全词(java & python3)

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