首页 > 其他分享 >Leet Code 1684. 统计一致字符串的数目

Leet Code 1684. 统计一致字符串的数目

时间:2023-06-08 22:33:12浏览次数:48  
标签:Leet Code String int 1684 words allowed 字符串 一致

/**
 * 1684. 统计一致字符串的数目
 * 
 * 给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是
 * 一致字符串 。
 * 
 * 请你返回 words 数组中 一致字符串 的数目。
 * 
 * 
 * 
 * 示例 1:
 * 
 * 输入:allowed = "ab", words = ["ad","bd","aaab","baa","badab"]
 * 输出:2
 * 解释:字符串 "aaab" 和 "baa" 都是一致字符串,因为它们只包含字符 'a' 和 'b' 。
 * 
 * 示例 2:
 * 
 * 输入:allowed = "abc", words = ["a","b","c","ab","ac","bc","abc"]
 * 输出:7
 * 解释:所有字符串都是一致的。
 * 
 * 示例 3:
 * 
 * 输入:allowed = "cad", words = ["cc","acd","b","ba","bac","bad","ac","d"]
 * 输出:4
 * 解释:字符串 "cc","acd","ac" 和 "d" 是一致字符串。
 */
public class Solution19 {
    // 暴力
    public int countConsistentStrings1(String allowed, String[] words) {
        int res = 0;
        for (String word : words) {
            boolean flag = true;
            char[] chars = word.toCharArray();
            for (char c : chars) {
                if (allowed.indexOf(c) < 0) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                res++;
            }
        }
        return res;
    }

    // 用数组替代了hash表 看的题解
    public int countConsistentStrings(String allowed, String[] words) {
        boolean has[] = new boolean[128];
        for (char c : allowed.toCharArray()) {
            has[c] = true;
        }
        int ans = 0;
        for (int i = 0; i < words.length; i++) {
            ans++;
            for (char c : words[i].toCharArray()) {
                if (!has[c]) {
                    ans--;
                    break;
                }
            }
        }
        return ans;
    }
}

标签:Leet,Code,String,int,1684,words,allowed,字符串,一致
From: https://www.cnblogs.com/snolin/p/17467879.html

相关文章

  • LeetCode 2116. 判断一个括号字符串是否有效
    importjava.util.ArrayDeque;importjava.util.Deque;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;/***一个括号字符串是只由'('和')'组成的非空字符串。如果一个字符串满足下面任意一个条件,那么它就是有......
  • LeetCode 剑指 Offer 65. 不用加减乘除做加法
    /***写一个函数,求两个整数之和,要求在函数体内不得使用“+”、“-”、“*”、“/”四则运算符号。*<p>*示例:*输入:a=1,b=1*输出:2*<p>*提示:*a,b均可能是负数或0*结果不会溢出32位整数**00000001*00000101**进位和0......
  • Codeforces 1514 C
    1514C题意给出一个数n,求[1,2,3...n-1]的某个最长子序列,这个子序列的元素乘积模n余1。思路这是个思维题,一个数学公式\[x\equiv1(modn)\rightarrowkx\equivk(mod kn)\]所以子序列中的元素与\(n\)互质,累乘结果模\(n\)后如果不是1,那么将序列中等于结果的元素去......
  • LeetCode----回溯
    1算法模板for选择in选择列表:#做选择将该选择从选择列表移除路径.add(选择)backtrack(路径,选择列表)#撤销选择路径.remove(选择)将该选择再加入选择列表2代码示例46.全排列classSolution:def__init__(self):se......
  • LeetCode----前缀和
    1算法原理适用场景:利用preSum数组,可以在O(1)的时间内快速求出nums任意区间[i,j]内的所有元素之和sum(i,j)=preSum(j+1)-preSum[i]算法模板classNumArray:def__init__(self,nums:List[int]):N=len(nums)self.preSum=[0]*(N+1)......
  • AtCoder Beginner Contest 240 D
    D-StrangeBallstag:栈模拟发现自己隔了快半年再做此题看错相同数字的球消失的条件,不是\(k\geq2\)而是\(k=a_i\)电子竞技不需要视力题意:当球\(a_i(1\leqi\leqN)\)有\(a_i\)个一起出现时,这\(a_i\)个球就会消失,问每次放一个球进去,放进去后还剩多少个球?用个......
  • 使用 QR code实现微信扫码支付 实测有效
     直接给代码自己理解html部分:<el-buttontype="primary"@click="recibo(scope.row)">确认收货</el-button><div><el-dialogtitle="付款码":visible.sync=&......
  • Codeforces 1515 B
    1515B题意有n只袜子(n为偶数),但左袜子有L只,右袜子有R只,每只袜子的颜色为\(C_i\),可以进行以下操作:换袜子的方向、或者将袜子变色,问进行多少次操作后变成(n/2)对袜子思路很曲折,想了很久后终于想清楚,排除配对的袜子后,对于某类袜子\(i\),剩下\(c\geq2\)(假设剩下的是右边)只,它的配对......
  • LeetCode----二维网格DFS
    1算法模板voiddfs(int[][]grid,intr,intc){//判断basecase//如果坐标(r,c)超出了网格范围,直接返回if(!inArea(grid,r,c)){return;}//访问上、下、左、右四个相邻结点dfs(grid,r-1,c);dfs(grid,r+1,c);......
  • vscode对比不同路径下的两个文件
    一、模拟环境 test目录下有两个文件夹,a和b 里面分别放着aa.txt 和bb.txt绝对路径:~/test/a/aa.txt~/test/b/bb.txt 二、命令行启动vscode对比$code--diffa/aa.txtb/bb.txt 三、使用vscode命令面板1.先用命令打开一个文件(模拟已经在查看的文件......