算法编程(二十九):统计一致字符串的数目

简介: 算法编程(二十九):统计一致字符串的数目

写在前面


今天这道题,《统计一致字符串的数目》,是针对字符串结构的一道题。

涉及到数组,所以一定会遇到遍历这些情况,至于如何解题那就一起来看一下吧。

image.png

题目解读


根据题目的描述来看,一共就是两个元素,字符串1代表着判断规则,字符串数组2代表着一系列待检查的字符串。

要从数组中找出只包含字符串1中字符的元素,最后返回匹配规则的元素数量。

解题思路也是一样,通过双重循环来判断。

外层循环遍历字符串数组,内层循环遍历字符串1的每一个字符。

然后在内层循环中,直接将匹配的值替换成空,保证不会重复验证。

最后等待内层循环遍历完成后,判断字符串元素的长度是否为0,就知道是否符合规则了。

下面就来看一下具体的代码编写吧。

代码实现


本次运行代码如下所示,大家可以选择性的参考一下,replaceAll的方式不太提倡。

public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.countConsistentStrings("ab", new String[]{"ad","bd","aaab","baa","badab"}));
    }
    public int countConsistentStrings(String allowed, String[] words) {
        int count = 0;
        for (String s : words) {
            String word = s;
            for (int j = 0; j < allowed.length(); j++) {
                if (word.length() != 0) {
                    word = word.replaceAll(String.valueOf(allowed.charAt(j)), "");
                }
            }
            if (word.length() == 0) {
                count++;
            }
        }
        return count;
    }
}

代码执行结果


我算是发现了,每次使用replaceAll方法就会搞得这么慢。

image.png

其他思路


这道题就是因为没有其他思路才不得以使用replaceAll的方式来处理的,大家自行想一下吧。

总结


本道题,主要考察的是字符串之间的比对情况,除了使用indexOf、replaceAll等方式处理,暂时没有想到其他好的办法。


相关文章
|
11天前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
181 1
|
13天前
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
6天前
|
存储 算法 Python
震撼!Python算法设计与分析,分治法、贪心、动态规划...这些经典算法如何改变你的编程世界!
【7月更文挑战第9天】在Python的算法天地,分治、贪心、动态规划三巨头揭示了解题的智慧。分治如归并排序,将大问题拆解为小部分解决;贪心算法以局部最优求全局,如Prim的最小生成树;动态规划通过存储子问题解避免重复计算,如斐波那契数列。掌握这些,将重塑你的编程思维,点亮技术之路。
14 1
|
1月前
|
机器学习/深度学习 算法 搜索推荐
编程之舞:探索算法的优雅与力量
【6月更文挑战第10天】在软件的世界里,算法是构筑数字宇宙的基石。它们如同精心编排的舞蹈,每一个步骤都充满着逻辑的美感和解决问题的力量。本文将带领读者走进算法的世界,一起感受那些精妙绝伦的编程思想如何转化为解决现实问题的钥匙。
19 3
|
19天前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
21天前
|
人工智能 算法 搜索推荐
Java算法编程详解和程序实例
Java算法编程详解和程序实例
17 0
|
21天前
|
算法 Java
Java数据结构与算法:字符串匹配算法之暴力匹配
Java数据结构与算法:字符串匹配算法之暴力匹配
|
21天前
|
算法 Java
Java数据结构与算法:字符串匹配算法之KMP算法
Java数据结构与算法:字符串匹配算法之KMP算法
|
1月前
|
算法
【经典LeetCode算法题目专栏分类】【第8期】滑动窗口:最小覆盖子串、字符串排列、找所有字母异位词、 最长无重复子串
【经典LeetCode算法题目专栏分类】【第8期】滑动窗口:最小覆盖子串、字符串排列、找所有字母异位词、 最长无重复子串
|
1月前
|
算法 安全 数据挖掘
解锁编程之门:数论在算法与加密中的实用应用
解锁编程之门:数论在算法与加密中的实用应用