字符串
文章平均质量分 61
wnjason
这个作者很懒,什么都没留下…
展开
-
HDOJ 1004 字符串排序
题意:给出N种颜色,统计出出现次数最多的颜色。算法:先对字符串进行排序,然后迭代的比较出出现次数最多的颜色。代码:#include #include #include using namespace std;int main(){ int N,flag=0; string color[1005]; while(cin>>N&&N!=0){原创 2014-11-21 11:09:21 · 623 阅读 · 0 评论 -
Replace '*'of string
题目大意:给出一个字符串,该字符串包含若干个'*',每个'*'都可以用0或1替换,输出所有的替换方案。算法思想:采用递归,采用索引表示当前遍历字符的位置,如果其等于字符串的长度则输出。如果当前遍历到的字符为'*'则分别用0或1替换然后递归的输出所有可行方案,否则不进行替换递归寻找可行方案。代码如下:#include #include using namespace std;原创 2015-12-30 22:23:55 · 365 阅读 · 0 评论 -
LeetCode---Compare Version Numbers
题目大意:给出两个非空的仅有数字和‘.’字符构成的字符串,他们表示两个版本号,比较它们的大小。这里‘.’不是小数点,作用仅仅是分隔字符串。算法思想:由于'.'的作用仅仅是分隔字符串,从而将两个版本号分隔成了若干小段,我们只需计算两个版本号每小段表示的数值大小,并进行比较即可。代码如下:class Solution {public: int compareVersion(s原创 2015-11-28 16:37:00 · 326 阅读 · 0 评论 -
LeetCode---Multiply Strings
题目大意:给出两个字符串表示的数求出其乘法结果。算法思想:1.设置两个变量分别存储当前结果和累加结果。2.利用两个循环,外层循环控制被乘数内层循环控制乘数,然后将被乘数的每一位分别和乘数的所有位相乘得到当前结果并将其扩大10倍和累加结果相加并存入累加结果中。3.返回计算结果。代码如下:class Solution {public: string multiply(原创 2015-11-28 14:24:51 · 252 阅读 · 0 评论 -
LeetCode---Count and Say
题目大意:给出一个数字n,按照下面的规律生成第n个字符串序列1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2, then one 1" or 1211.算法思想:1.如何n=1时直接返原创 2015-11-26 21:25:10 · 203 阅读 · 0 评论 -
LeetCode---ZigZag Conversion
题目大意:给出一个字符串和行号,其实按ZigZag模式排列的输出其转化后的排列方式。ZigZag的排列规律:算法思想:设置一个string[rowNums]数组,和一个方向标记,通过方向标记将字符串写入string[rownums]中,然后将其拼接起来即是转换结果。方向分为向下和向上,向下时按行号递增的方式填写数组触碰到边界改变方向,向上时按对角线规律填写数组,遇到上边界改变方原创 2015-11-25 11:22:50 · 277 阅读 · 0 评论 -
LeetCode---Longest Common Prefix
题目大意:给出一组字符串,求出改组字符串中的最长公共前缀。算法思想:1.判断字符串的个数如果个数为0返回空,为1返回仅存在的字符串。2.遍历容器找出容器中字符串最小的长度。3.按最小规模遍历容器中首个字符串将其每个字符与其他字符串的相应字符比较如果都相同则加入结果字符串中,如果存在不同则终止遍历。4,返回最长公共前缀字符串。代码如下:class Solution {p原创 2015-11-24 17:36:22 · 246 阅读 · 0 评论 -
LeetCode---Longest Palindromic Substring
题目大意:给出一个字符串,求出该字符串中的最长回文串。算法思想:采用动态规划的解法。利用f(i,j)判断si~sj是否是一个回文串。状态转移方程 :f(i,j)= true i==jf(i,j)= true s[i]=s[j] i+1=j;f(i,j)= s[i]==s[j]&&f[i-1][j-1];代码如下:class Solution {p原创 2015-11-19 21:10:57 · 237 阅读 · 0 评论 -
LeetCode---Implement strStr()
题目大意:实现strstr()函数,即给出两个串判断一个串是否是另一个串的子串,如果是返回第一次出现的索引,如果不是返回-1;算法思想:法一:用str.find().法二:暴力匹配:遍历主串的每一位,将其当做子串的起始位判断其开始且后序的字符和字串是否相等,如果全部相等则返回主串当前的位置,如果不全相等则进行下一个起始位的比较。主串遍历完时返回-1;代码如下:class S原创 2015-11-18 20:35:39 · 288 阅读 · 0 评论 -
LeetCode---String to Integer (atoi)
题目大意:给出一个数字表示的字符串将其转化为数字。要求算法能够忽略字符串开头的连续空格,当字符串出现其他字符时将字符串就此截断且返回结果,当数字和大于MAX_INT时返回MAX_INT当数字和小于MIN_INT时返回MIN_INT.算法思想:开始时设置一个当前结果和变量,符号变量,和一个开始标记,然后遍历字符串,忽略开头的连续空格符,如果首次遇到'+','-'则标记符号变量且标记开始变量,原创 2015-11-18 23:12:40 · 279 阅读 · 0 评论 -
LeetCode---Reverse Words in a String
题目大意:给出一个由若干单词和空格组成吃的字符串,要求将其包含的所有单词的顺序倒转并且去掉冗余空格。算法思想:字符串中的字符可以看做是有空格和非空格组成的。当遍历字符串时如果遇见空格时此时判断是否是上个单词的结束,如果是将其迭代加入结果中,如果不是则继续遍历字符串,当遇见非空格符时将其拼接入单词并做标记。最后如果标记为真将最后一个单词加入结果中,然后去掉末尾的空格符。代码如下:cl原创 2015-11-23 20:26:00 · 332 阅读 · 0 评论 -
LeetCode---Longest Substring Without Repeating Characters
题目大意:给出一个字符串,要求输出该字符串中没有重复字符的最长子串的长度。算法思想:用一个无序map存储当前最长无重复字符的子串的每个字符,键:字符,值:对应字符的索引,然后遍历字符串,如果当前字符不在容器中,则将其插入,若在容器中则将已在容器中的该字符及其之前的放入容器的字符移除,之后将当前字符插入容器中。遍历过程中不断迭代寻找最大长度。注意:用一个pre记录移除容器中已存在字符及其之前原创 2015-12-10 11:19:57 · 277 阅读 · 0 评论 -
LeetCode---Excel Sheet Column Number
题目大意:给出Excel表中出现的列标题,输出相应的列值。如 A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 算法思想:1.设置一个初值sum=0;2.从左向右扫描string,每次sum等于当前的字符值+sum*26,即迭代器每向右移动一次sum扩大26倍。代码如下:原创 2015-09-24 00:42:52 · 217 阅读 · 0 评论 -
LeetCode---Add Binary
题目大意:给出二个二进制字符串,将其结果相加求和。算法思想:1.为方便计算,将两个字符串逆序。2.设置进制位用于记录字符串各位相加的进位,初始化为0.3.将两个字符串的各位逐位相加。4.若两字符串长度不等,则将长字符串的剩余部分加起来。5.若有进位,则将进位加入结果中。6.将结果逆序并返回。代码如下:class Solution {public: st原创 2015-11-04 19:36:21 · 357 阅读 · 0 评论 -
LeetCode---Length of Last Word
题目大意:给出一个字符串,由大小写字母和空格组成,输出最后一个单词的长度,如果单词不存在长度为0。算法思想:1.从后向前遍历字符串。2.忽略掉没有字符串尾部的空格。3.当扫描过一个单词后遇到空格,终止循环。代码如下:class Solution {public: int lengthOfLastWord(string s) { if(s.size()=原创 2015-10-02 19:05:13 · 311 阅读 · 0 评论 -
LeetCode---anagram
题目大意:给出两个字符串s,t,判断和t是否有相同的字符,如果是则返回真,否则返回假。算法思想:将两个字符串先排序,然后再判断是否相等。代码如下:class Solution {public: bool isAnagram(string s, string t) { sort(s.begin(),s.end()); sort(t.begin原创 2015-09-26 11:36:50 · 345 阅读 · 0 评论 -
LeetCode ---Valid Palindrome
题目大意:给出一个字符串,要求只考虑字符串中的字母和数字,判断该字符串是否是回文。注意:空串是回文。算法思想:首先将字符串中的大写字母全部转化为小写字母,然后分别设置两个游标Left ,right。开始扫描字符串如果当前字符不是字母或数字则跳过,若是则比较,左右游标指向的字符是否相同,如果不想同则返回FALSE,当扫描完整个字符串的时候返回TRUE。代码如下:class Solutio原创 2015-05-11 12:25:14 · 582 阅读 · 0 评论 -
LeetCode---Group Anagrams
题目大意:给出一组字符串,将每个字符串按照相同的回文词进行分组。所谓回文词就是组成单词的字母的种类和数目没有变,只是顺序改变而已。要求返回结果中每组回文词按字典序排列。算法思想:1.遍历字符串数组,对于每个字符串将其字典序排序,排序后的结果作为map容器的键以此将其分组。2.遍历map容器,判断每个键对应的值个数是否大于0,将值进行排序后放入结果集中。代码如下:class So原创 2015-12-01 19:01:39 · 286 阅读 · 0 评论