thảo luận Leetcode mỗi ngày

  • Người tạo chủ đề Người tạo chủ đề _Gia_Cat_Luong_
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
Bài dễ thì phải làm cho nó khó lên, để người khác đọc vào thấy khó hiểu, nguy hiểm, :doubt:
C++:
class Solution {
public:
    int countConsistentStrings(string allowed, vector<string>& words) {
        return accumulate(words.begin(), words.end(), 0, [s = set(allowed.begin(), allowed.end())] (int acc, const string& word) {
            return acc + all_of(word.begin(), word.end(), [&s] (int c) { return s.count(c); });
        });
    }
};
 
Bài này easy cũng không có gì nhiều để nói, nhưng mình để ý thấy anh em hay set ans = 0 lúc đầu xong tạo thêm 1 var (i.e. isMatched) để kiểm tra xem có match hết không thì set ans += 1.

Thực ra thì set luôn ans = len(words), xong kiểm tra nếu phát hiện ký tự không có bên string allowed thì break luôn và set ans -=1. Làm thế thì không cần thêm bước check isMatched cũng như không cần thêm var trong loop nữa :)
Mùi gì mà khét thế bác :).
 
26 kí tự mà sao cần tới 135 array mai fence, xài 1 loop thôi :ah:
:pudency:
Java:
class Solution {
    public int minimumLength(String s) {
        int[] map = new int[26];
        int len = s.length();

        for(int i = 0; i < s.length(); i++) {
            map[s.charAt(i) - 'a']++;
        }

        for(int i : map) {
            if (i == 0)
                continue;
        
            len -= i % 2 == 1 ? i - 1 : i - 2;
        }

        return len;
    }
}
 
nhẹ nhàng :p

Java:
class Solution {
    public int countConsistentStrings(String s, String[] w) {
        int count = 0;
        int[] a = new int[26];
        for (char c : s.toCharArray())
            a[c - 'a'] = 1;
        for (String str : w) {
            boolean check = true;
            for (char c : str.toCharArray()) {
                if (a[c - 'a'] == 0) {
                    check = false;
                    break;
                }
            }
            count += check ? 1 : 0;
        }
        return count;
    }
}
 
bth t5 mới update rating, 1k5 là sức mạnh cơ bản của mỗi người r
osCpCsi.png
 
PHP:
class Solution {

    /**
     * @param String $allowed
     * @param String[] $words
     * @return Integer
     */
    function countConsistentStrings($allowed, $words) {
        // create set
        $set = [];
        for ($i=0; $i<strlen($allowed); $i++) {
            $set[$allowed[$i]] = true;
        }

        // count consistent
        $count = 0;
        foreach ($words as $w) {
            $consistent = 1;
            for ($i=0; $i<strlen($w); $i++) {
                if (isset($set[$w[$i]])) continue;

                $consistent = 0;
                break;
            }

            $count += $consistent;
        }

        return $count;
    }
}
 
Mã:
class Solution:
    def countConsistentStrings(self, allowed: str, words: List[str]) -> int:
        res = 0
        set_string = set(allowed)
        for word in words:
            check = True
            for c in word:
                if c not in set_string:
                    check = False
                    break
            
            if check: res += 1
        
        return res
 
Nên có giờ đưa cơm cố định nhỉ
JCFtpJo.png
Người đưa cơm thì luân phiên. Cơm thêm nên đưa theo topic để anh em nhanh lên trình. @freedom.9 đưa cơm tuần này đi
JEWoIdl.png
đưa cơm lúc 7h tối là hợp lí nhỉ, giờ đó cơm nước xong cả rồi. Anh em nhét cơm nhiều quá nhìn mà hoảng
UKiCiKh.png
Thứ 2 đầu tuần đổi người đưa cơm. Hôm nào daily có easy thì đưa cơm hard chẳng hạn.
c6GVp0o.png
 
Nên có giờ đưa cơm cố định nhỉ
JCFtpJo.png
Người đưa cơm thì luân phiên. Cơm thêm nên đưa theo topic để anh em nhanh lên trình. @freedom.9 đưa cơm tuần này đi
JEWoIdl.png
đưa cơm lúc 5h chiều là hợp lí nhỉ. Anh em nhét cơm nhiều quá nhìn mà hoảng
UKiCiKh.png
Thứ 2 đầu tuần đổi người đưa cơm. Hôm nào daily có easy thì đưa cơm hard chẳng hạn.
c6GVp0o.png
Hợp lí nhỉ, nên đưa theo topic. Mỗi tuần 1 đồng chí đưa cơm, đưa cơm những bài AC thấp Medium đổ lên là ổn :doubt:
Ngày 2 bài + 1 bài daily nữa là 3 bài. 1 năm 900 trăm bài chấp hết các cty pv Algorithm ở VN :ah:
 
Hợp lí nhỉ, nên đưa theo topic. Mỗi tuần 1 đồng chí đưa cơm, đưa cơm những bài AC thấp Medium đổ lên là ổn :doubt:
Ngày 2 bài + 1 bài daily nữa là 3 bài. 1 năm 900 trăm bài chấp hết các cty pv Algorithm ở VN :ah:
zQU2cJa.png
2 bài có vẻ nhiều, nhưng nếu giải theo chủ đề thì cũng nhanh thôi nhỉ
 
Java:
class Solution {
    public int countConsistentStrings(String allowed, String[] words) {
        int set =0;
        int cnt = words.length;
        for(char c:allowed.toCharArray()){
            set = set|(1<<(c-'a'));//set (c-'a')th bit to 1
        }
        for(String word:words){
            for(char c: word.toCharArray()){
                if((set&(1<<(c-'a')))==0) {//check (c-'a')th bit
                    cnt--;
                    break;
                }
            }
        }
        return cnt;
    }
}
 
Sửa lần cuối:
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
_Gia_Cat_Luong_,
Người trả lời cuối
Vipluckystar,
Trả lời
17.755
Lượt xem
1.213.944
Quay lại
Lên đầu trang