字符串类
qiki_tang
不积硅步无以至千里,突破自己,糖没味儿加油!
展开
-
单词逆序--翻转
一、问题描述 一个英文句子中,eg:I love China. 把它按照单词逆序,变成China love I.二、解题思路 N步反转: step1:首先一空格为拆分,将字符串分为k个部分(向后取空格的原则); step2:分别对这k个部分的子串进行反转 step3:最后对字符串整体反转三、算法代码/***********************Author:tmw...原创 2018-04-27 16:19:59 · 1301 阅读 · 0 评论 -
最长公共前缀
一、题目描述编写一个函数来查找字符串数组中最长的公共前缀字符串。如果没有共同的前缀,则返回一个空字符串“”。【示例】Input: ["flower","flow","flight"]Output: "fl"Input: ["dog","racecar","car"]Output: ""二、解题思路1、方法一:纵向比较 类深度优先,先遍历所有字符原创 2018-07-08 12:02:04 · 1978 阅读 · 1 评论 -
最长回文子串
问题描述 给定一个字符串,求它的最长回文子串的长度方法1-最长优先遍历算法思想 针对这个问题,笔者最先想到的方法是以最长长度(即字符串本身长度)开始,从头到尾遍历以长度为单位遍历字符串,一旦不符合回文匹配,则跳出字符串遍历。继续走最外层循环–即将遍历长度逐次减一,直到遍历长度减到2为止,若找到,返回最外层循环长度,若没找到,则返回0,程序结束。复杂度分析 本算法最好的情况就是,一开始原创 2017-11-15 11:32:14 · 411 阅读 · 0 评论 -
回文判断
问题描述 给定一个字符串,判断这个字符串是否是回文回文的特点在于对称性,针对这个性质,笔者想到的方法有: 1)两头到中间 2)中间到两头 3)recerse前后判断 4)栈下面,笔者将分别这四种方法用代码的形式实现1. 两头到中间算法思想头、尾指针分别指向字符串的首元素和尾元素,逐一比较,若有不同,则返回false,程序退出。直到头尾指针指向同一个中间元素,算法终止。时间复杂度为O(n原创 2017-11-13 22:31:15 · 694 阅读 · 0 评论 -
有效回文判断--忽略其他字符
题目描述给定一个字符串,确定它是否是回文,只考虑字母、数字并忽略其他字符情况。 例如, ”A man, a plan, a canal: Panama” 是一个回文。 “race a car”不是回文。 ps:空字符串定义为有效的回文。解题思路构建两个指针,一头一尾夹逼解题算法/******************************************...原创 2018-07-08 12:11:54 · 307 阅读 · 0 评论 -
字符串的旋转--3步翻转法
问题描述 给定一个字符串,要求将字符串前面的若干字符移到字符串的尾部。例如: 将字符串“abcdef”的前3个字符’a’、’b’和’c’移到字符串的尾部,那么原字 符串将变成“defabc”,请写一个函数实现此功能.思路:可通过三步翻转的方法实现step1:将原字符串分成两部分,一部分是字符串前面的“若干字符”X,另一部分是除了X的Y;step2:将X的所有字符翻转,即上面所说原创 2017-12-01 22:21:30 · 721 阅读 · 0 评论 -
字典序的应用
一、题目描述输入n,m,k,表示n个“a”字符,m个“z”字符组成一个字符串,要求出字典序从低到高组成的第k个字符串是什么?【举例】n = 2,m = 2,k = 6则该字符串构成的字典序排列为:aazz azaz azza zaaz zaza zzaa第6个字符串为:zzaa二、题目分析1)C语言自己写全排列程序2)使用C++库里的next_permutati...原创 2018-08-11 17:55:36 · 426 阅读 · 0 评论 -
53-正则表达式匹配
一、题目描述实现正则表达式匹配,支持'.' 和'*';‘.’:匹配任何单个字符。 '*':匹配零个或多个前面的元素。匹配应覆盖整个输入字符串(不是部分)。函数原型应该是:bool isMatch(char* s, char* p) s可以是空的并且只包含小写字母a-z。 p可以是空的并且只包含小写字母a-z和字符.要么*。二、题意分析Input:s = "m...原创 2018-08-24 17:17:14 · 139 阅读 · 0 评论 -
字符串A中删除字符串B中所有字符
一、问题描述输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入A串”They are students.”和B串”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”二、问题分析此题分为两个部分来解答 1)查找在A串中出现的B串字符 2)删除A串中的字符对于第1)个问题,能做到快速查找的方法是二分和哈希,这里明显用哈希更合适,...原创 2018-10-22 23:47:18 · 5342 阅读 · 0 评论