0
点赞
收藏
分享

微信扫一扫

Java 第 15 课 2000. 反转单词前缀

微言记 2022-02-26 阅读 102

第 15 课

2000. 反转单词前缀

class Solution:
    def reversePrefix(self, word: str, ch: str) -> str:
        idx = word.find(ch) + 1
        return word[:idx][::-1] + word[idx:] if idx != 0 else word
class Solution {
    public String reversePrefix(String word, char ch) {        
        char[] arr = word.toCharArray();
        for (int i = 0, j = word.indexOf(ch); i < j; i++, j--){
            char tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }
        return new String(arr);   
    }
}

2006. 差的绝对值为 K 的数对数目

class Solution:
    def countKDifference(self, nums: List[int], k: int) -> int:
        # 方法一:
        # res, n = 0, len(nums)        
        # for i in range(n):
        #     for j in range(i+1, n):
        #         if abs(nums[i]-nums[j]) == k:
        #             res += 1
        # return res

        # 方法二:哈希表
        # res, d = 0, defaultdict(int)
        # for i in nums:
        #     d[k+i] += 1
        # # for i in nums:          
        # #     res += d[i]
        # return sum(d[i] for i in nums)
        
        # 方法三:Counter
        # res, c = 0, Counter()
        # for i in nums:
        #     res += c[i + k] + c[i - k]
        #     c[i] += 1
        # return res
        c = Counter(nums)
        return sum(c[i + k] for i in nums)
class Solution {
    public int countKDifference(int[] nums, int k) {
        int[] c = new int[200];
        int ans = 0;
        for (int num : nums){
            ans += c[num + k] + (num >= k ? c[num - k] : 0);
            c[num]++;                     
            // c[num + k]++; 
            // if (num >= k) c[num - k]++;
            // ans += c[num];
        } 
        return ans;
    }
}
举报

相关推荐

0 条评论