[杨小白]_leetcode_力扣_第 324 场周赛-第一题

84 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情

前言

小白算法比较菜,希望能激励我每日更新,从leetcode第一题开始,2022年目标2000分,现在1995!!

力扣第 324 场周赛-力扣

第 324 场周赛

掉分啊!!! 打比赛的只有4000来人了

image.png

image.png

image.png

image.png

image.png

6265. 统计相似字符串对的数目

给你一个下标从 0 开始的字符串数组 words 。

如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。

例如,"abca" 和 "cba" 相似,因为它们都由字符 'a'、'b'、'c' 组成。

然而,"abacba" 和 "bcfd" 不相似,因为它们不是相同字符组成的。

请你找出满足字符串 words[i] 和 words[j] 相似的下标对 (i, j) ,并返回下标对的数目,其中 0 <= i < j <= word.length - 1 。

示例1:

输入:words = ["aba","aabb","abcd","bac","aabc"]

输出:2

解释:共有 2 对满足条件:

  • i = 0 且 j = 1 :words[0] 和 words[1] 只由字符 'a' 和 'b' 组成。
  • i = 3 且 j = 4 :words[3] 和 words[4] 只由字符 'a'、'b' 和 'c' 。

示例 2:

输入:words = ["aabb","ab","ba"]

输出:3

解释:共有 3 对满足条件:

  • i = 0 且 j = 1 :words[0] 和 words[1] 只由字符 'a' 和 'b' 组成。
  • i = 0 且 j = 2 :words[0] 和 words[2] 只由字符 'a' 和 'b' 组成。
  • i = 1 且 j = 2 :words[1] 和 words[2] 只由字符 'a' 和 'b' 组成。

示例 3:

输入: words = ["nba","cba","dba"]

输出: 0

解释: 不存在满足条件的下标对,返回 0 。

提示:

  • 1 <= words.length <= 100
  • 1 <= words[i].length <= 100
  • words[i] 仅由小写英文字母组成

代码

第一题还是经典的读题题。

长度只有100,直接暴力,用长度为的26的数字做存储,进行对比。

class Solution {
    public int similarPairs(String[] words) {
        int res = 0;
        int[][] dp = new int[words.length][26];
        for(int i = 0; i < words.length; i++) {
            for(int j = 0; j < words[i].length(); j++) {
                int c = words[i].charAt(j) - 'a';
                dp[i][c] = 1;
            }
        }
        for(int i = 0; i < words.length; i++) {
            for(int j = i + 1; j < words.length; j++) {
                boolean flag = true;
                for(int k = 0; k < 26; k++) {
                    if(dp[i][k]!=dp[j][k]) {
                        flag = false;
                        break;
                    }
                }
                if(flag) {
                    res++;
                }
            }
        }
        return res;
    }
}

3.结束

大早上爬起来掉分,第四题太简单了,第三题又一直考虑不充分,有几个过不了,掉分咯~ 今年上2000分有点难度。