当前位置:网站首页>Competition question 2022-6-26

Competition question 2022-6-26

2022-07-06 01:40:00 Yake1965

6104. Statistical asterisk

class Solution:
    def countAsterisks(self, s: str) -> int:

        return "".join(s.split("|")[::2]).count("*")

        flag, ans = 1, 0
        for c in s:
            if c == "*": ans += flag
            elif c == "|": flag = 1 - flag
        return ans
        
        a = s.split('|')
        return sum(a[i].count("*") for i in range(0, len(a), 2))

6107. The number of different die sequences

The first i The result of throwing dice for the first time is affected by (i - 1) Time and number (i - 2) Limit of secondary results . So we maintain f(i, a, b) It means the first one i The result of this dice throw is a, The first (i - 1) The result of this time is b Number of alternatives .

In order to transfer , Let's enumerate the third (i - 2) Results of c. According to the meaning ,a,b,c The following requirements need to be met :

The three numbers are not equal to each other ;
gcd(a, b) = gcd(b, c) = 1.
As long as these two conditions are met at the same time ,f(i - 1, b, c) Can be transferred to f(i, a, b).

The first 300 Weekly match

2325. Decrypt the message

class Solution {
    
    public String decodeMessage(String key, String message) {
    
        Map<Character, Character> map = new HashMap<>();
        int i = 97;
        for(char c : key.toCharArray()){
    
            if(c == ' ') continue;
            if(!map.containsKey(c)) map.put(c, (char)(i++));
        }
        map.put(' ', ' ');
        StringBuilder sb = new StringBuilder();
        for(char c : message.toCharArray()){
    
            sb.append(map.get(c));
        }
        return sb.toString();
    }
}

2326. Spiral matrix IV

class Solution {
    
    public int[][] spiralMatrix(int m, int n, ListNode head) {
    
        int[][] ans = new int[m][n];
        for(int[] row : ans) Arrays.fill(row, -1);
        int up = 0, down = m - 1, left = 0, right = n - 1;
        while(head != null){
    
            for(int j = left; head != null && j <= right; j++){
    
                ans[up][j] = head.val;
                head = head.next;
            }
            up++;
            for(int i = up; head != null && i <= down; i++){
    
                ans[i][right] = head.val;
                head = head.next;
            }
            right--;
            for(int j = right; head != null && j >= left; j--){
    
                ans[down][j] = head.val;
                head = head.next;               
            }
            down--;
            for(int i = down; head != null && i >= up; i--){
    
                ans[i][left] = head.val;
                head = head.next;
            }
            left++;
        }
        return ans;        
    }
}

2327. Number of people who know the secret

f[i] It means the first one i Tianxin knows the number of Secrets .

class Solution {
    
    public int peopleAwareOfSecret(int n, int delay, int forget) {
    
        int mod = 1000000007; 
        long s = 0;
        long[] f = new long[n + 1];
        f[1] = 1;
        for(int i = 2; i <= n; i++){
    
            if(i > delay) s += f[i-delay];
            if(i > forget) s -= f[i-forget];
            f[i] = s % mod;
        }
        long sum = 0;
        for(int i = 0; i < forget; i++){
    
            sum = (sum + f[n - i]) % mod;
        }
        return (int)sum;
    }
}

2328. The number of incremental paths in the grid graph

原网站

版权声明
本文为[Yake1965]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060128369276.html