今天发现一道题,是某一个笔试的最后一道。我用C语言实现了一下。整体感觉不是很难,给大家分享一下。来看题目:
给定一个 query 和一个 text,均由小写字母组成。
要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。
例如, query 为“acbac”,text 为 “acaccbabb”,
那么 text 中的“cba”为最长的连续出现在 que...
分类:
其他好文 时间:
2015-04-02 19:00:58
阅读次数:
164
字符串查找算法在于其效率的高低,单个字符的一次比较从头到尾遍历一遍肯定能找出来,但这样效率太低。比较著名的算法有KMP和BM(KMP看着烦躁),但个人来说,Sunday算法是我最能理解且效率不错的算法(而且代码很简单啊)。sunday算法关注的是模式串的下一个字符的匹配情况(因为字符串不匹配的话,模...
分类:
其他好文 时间:
2015-03-31 17:29:36
阅读次数:
180
题意:给定一个字符串,查找最长的子串的长度(没有重复字符)。原题来自:https://leetcode.com/problems/longest-substring-without-repeating-characters/分析:我自己的思路,和曾经做的求最长公共子串长度一样,不过那个是用二维数组,...
分类:
其他好文 时间:
2015-03-31 12:22:39
阅读次数:
106
1.用法,要传2个参数 stristr(string,search):查找并返还匹配后,剩下的部分字符串 查找过程不区分大小写,要区分大小写用 strstr(string,search)少一个字母i search:要查找的字符。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。(所以要...
分类:
Web程序 时间:
2015-03-18 12:02:29
阅读次数:
352
题目:
在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
思路:
我们可以依次遍历求出每个字符的次数,即每求一个字符的次数,就遍历一次字符串。但是这样时间复杂度为O(n*n)。
这样考虑,每个字符对应一个ASCII值,我们可以设定一个数组长度为256,每一个字符的ASCII码值即数组的index值。遇到相同的就加一。
最后遍历一次求第一个出现一次的字...
分类:
其他好文 时间:
2015-03-11 23:32:15
阅读次数:
287
知识点: 1.字符和字符处理函数 2.字符串的本质和字符串输入输出函数 3.字符串转换函数 4.常用字符串处理函数 5.字符串查找函数 6.字符串分割函数 7.字符串替换 8.常用字符串处理函数实现 9.sscanf sprintf函数 ==============...
分类:
编程语言 时间:
2015-02-28 00:13:56
阅读次数:
282
字典树(trie树) 字典树是一种在字符串查找,前缀匹配等方面应用广泛的算法,它在查找字符串时只与被查询的字符串长度有关,所以它在查找时只有O(1)的时间复杂度,但随之而来的较大的空间复杂度。一.原理分析 如图,字典树的每一个节点是由一个数据域(用来标记是否在此处有字符串终止)与26个指针域(表.....
分类:
其他好文 时间:
2015-02-07 13:06:10
阅读次数:
185
strtok :在一个字符串查找下一个符号char *strtok( char *strToken, const char *strDelimit );返回值:返回指向在strToken字符串找到的下一个符号的指针,当在字符串找不到符号时,将返回NULL.每次调用都通过用NULL字符替代在strTo...
分类:
其他好文 时间:
2015-02-06 20:22:16
阅读次数:
150
字符串查找算法中,最著名的两个是KMP算法Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情
况下均具有线性的查找时间。BM算法往往比KMP算法快上3-5倍。但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法。
例如我们要在"substringsearchingalgorithm"查找"search"
第一步,把子串与文本左边对齐...
分类:
编程语言 时间:
2015-02-01 16:14:46
阅读次数:
245