字符串包含算法

假设有一个字符串a= "abcdefghijk"

另外一个字符串b = "aegf"

查看a中是否包含b中的所有字母。

第一个方案是用一个int类型的变量,清零。然后用一个位代表一个字母,遍历a字符串,遇到字母把相应位置1;

然后遍历第二个字符串,遇到字母把相应位清0.这样时间复杂度为o(a.size() + b.size() )

还有一种屌炸天的算法是,用质数表示字母,例如 a 2 b 3 c 5.然后把a中所有的字母相乘

在除以b中字母,看是否整除即可。

时间: 2024-11-07 15:14:57

字符串包含算法的相关文章

字符串包含

字符串包含 题目:假设这有一个各种字母组成的字符串A,和另外一个字符串B,字符串里B的字母数相对少一些.什么方法能最快的查出所有小字符串B 里的字母在大字符串A里都有? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l

【程序员编程艺术】学习记录3:字符串包含问题

[程序员编程艺术]学习记录3:字符串包含问题 题目: 假设这有一个各种字母组成的字符串A,和另外一个字符串B,字符串里B的字母数相对少一些.什么方法能最快的查出所有小字符串B 里的字母在大字符串A里都有? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Rabin-Karp字符串查找算法

1.简介 暴力字符串匹配(brute force string matching)是子串匹配算法中最基本的一种,它确实有自己的优点,比如它并不需要对文本(text)或模式串(pattern)进行预处理.然而它最大的问题就是运行速度太慢,所以在很多场合下暴力字符串匹配算法并不是那么有用.我们需要一些更快的方法来完成模式匹配的工作,然而在此之前,我们还是回过头来再看一遍暴力法匹配,以便更好地理解其他子串匹配算法. 如下图所示,在暴力字符串匹配里,我们将文本中的每一个字符和模式串的第一个字符进行比对.

程序员编程技术学习笔记——字符串包含

程序员编程技术学习笔记--字符串包含 1.题目描述 给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短.请问,如何最快地判断字符串B中所有字母是否都在字符串A里?为了简单起见,我们规定输入的字符串只包含大写英文字母,请实现函数boolStringContains(string &A, string &B) 比如,如果是下面两个字符串: String 1:ABCD String 2:BAD 答案是true,即String2里的字母在String1里也都有,或者说Strin

shell 字符串包含

转自:Shell判断字符串包含关系的几种方法 现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含"baidu"字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault. 方法一:利用grep查找 1 strA="long string" 2 strB="string" 3 result=$(echo $strA | gr

字符串包含的判断

给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短.请问,如何最快地判断字符串B中所有字母是否都在字符串A里?简单起见,约定只出现小写字符. 代码: package alg; import java.util.Arrays; /** * @author zha * 字符串包含 */ public class Alg2StringContain { public static void main(String[] args) { String tt = "abcdefg&quo

PHP 字符串包含判断

遇到了这个问题.记录一下.用strpos查找字符串来进行字符串包含判断. 1 <?php 2 //$res = strpos("hello", "hx"); 3 $res = strpos("hello", "he"); 4 if ($res !== false){ 5 echo "find OK, pos:$res\n"; 6 } 7 else { 8 echo "find failed,

Chapter 4. 字符串 KMP算法

Chapter 4. 字符串 KMP算法 Sylvia's I. 讲的比较好的博客1,博客2 表问窝,在窝翻遍全网的博客后,窝已经处于混乱状态-- Sylvia's II. 窝是贴代码的小能手-- //前方高能请注意//窝并不知道窝在说什么--#include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> using namespa

#面试系列 字符串处理算法

面试系列 字符串处理算法 最大子序列和 动态规划法 思路:顺序遍历,判断sum是否大于等于0 时间复杂度:O(n) 空间复杂度:O(1) #include <iostream> #include <limits.h> using namespace std; int getMaxSum(int *arr, int size) { int maxSum = INT_MIN; //负的无穷大 int sum = 0; int curstart = 0; int start = 0; i