![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 字符串
温酒知莲华
这个作者很懒,什么都没留下…
展开
-
[LintCode]379.将数组重新排序以构造最小值
给定一个整数数组,请将其重新排序,以构造最小值。 注意事项The result may be very large, so you need to return a string instead of an integer.样例给定 [3, 32, 321],通过将数组重新排序,可构造 6 个可能性数字:3+32+321=3323213+321+3原创 2017-08-19 17:02:17 · 454 阅读 · 0 评论 -
合法括号序列判断
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。测试样例:"(()())",6返回:true测试样例:"()a()()",7返回:false测试样例:"()(()()",7返回:falseclass Par原创 2017-08-28 22:31:47 · 536 阅读 · 0 评论 -
[LintCode]212.空格替换
设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。样例对于字符串"Mr John Smith", 长度为 13替换空格之后,参数中的字符串需要变为"Mr%20John%20Smith",并且把新长度 17 作为结果返回。思路:先遍原创 2017-08-28 22:02:24 · 410 阅读 · 0 评论 -
拼接最小字典序 类似 [LintCode]379
对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。测试样例:["abc","de"],2"abcde"思路:比较s1+s2 和 s2+s1的大小,不单独比较每个字符串 sort 中的比较函数当你需要按照某种特定方式原创 2017-08-27 17:23:18 · 276 阅读 · 0 评论 -
字符串移位 类似[LintCode]8
对于一个字符串,请设计一个算法,将字符串的长度为len的前缀平移到字符串的最后。给定一个字符串A和它的长度,同时给定len,请返回平移后的字符串。测试样例:"ABCDE",5,3返回:"DEABC"思路:1、将str[0.....i]部分的字符逆序 ABC DE->CBA DE 2、将str[i+1原创 2017-08-27 17:00:57 · 260 阅读 · 0 评论 -
两串旋转 是否互为旋转词
如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",A的旋转词有"12345","23451","34512","45123"和"51234"。对于两个字符串A和B,请判断A和B是否互为旋转词。给定两个字符串A和B及他们的长度lena,lenb,请返回一个bool值,代表他们是否互为旋转词。测试样例:"cdab",4,"a原创 2017-08-27 16:25:20 · 267 阅读 · 0 评论 -
拓扑结构相同子树 类似[LintCode]245
对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。给定两棵二叉树的头结点A和B,请返回一个bool值,代表A中是否存在一棵同构于B的子树。思路:一、把二叉树的值转换成字符串 二、查找字符串a是否包含子串b,用strA.find(strB) != string:npos/*struct原创 2017-08-27 16:01:23 · 371 阅读 · 0 评论 -
句子的逆序 类似[LintCode]53
对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串A和他的长度,请返回逆序后的字符串。测试样例:"dog loves pig",13返回:"pig loves dog"思路:1、实现将字符串局部所有字符逆序的函数2、利用f将字符串所有字符逆序"p原创 2017-08-27 16:43:46 · 239 阅读 · 0 评论 -
[LintCode]211.字符串置换(词语变形 互为变形词)
给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。置换的意思是,通过改变顺序可以使得两个字符串相等。样例"abc" 为 "cba" 的置换。"aabc" 不是 "abcc" 的置换。根据题目可以知道几个条件:两个字符串长度相同。每个字符串中的各个字符数量相同。因此,可以直接对比两个字符串的长度、每个字原创 2017-08-17 20:30:00 · 493 阅读 · 0 评论 -
[LintCode]245.子树
有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 注意事项若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。样例下面的例子中 T2 是 T1 的子树: 1原创 2017-08-10 18:01:17 · 312 阅读 · 0 评论 -
[LintCode]54.转换字符串到整数
实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。样例"10" =>10"-1" => -1"123123123123123" => 2147483647"1.0" => 1思路:注意以下几种注原创 2017-08-20 00:26:31 · 212 阅读 · 0 评论 -
[LintCode]8.旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例对于字符串 "abcdefg".offset=0 => "abcdefg"offset=1 => "gabcdef"offset=2 => "fgabcde"offset=3 => "efgabcd"思路:旋转字符串先调用翻转字符串函数,再分别旋转三次可以达到效果class Solution原创 2017-08-19 21:50:46 · 317 阅读 · 0 评论 -
[LintCode]53.翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。说明单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个思路:先翻转整个字符串,再把每个单词翻转,就可以得到结果。开始循环,遇到空格符直接跳过,如果是非空格,如果index不为0说明不是第一个单词,那么在他后原创 2017-08-19 21:18:33 · 867 阅读 · 0 评论 -
[LintCode]384.最长无重复字符的子串
给定一个字符串,请找出其中无重复字符的最长子字符串。样例例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。对于,"bbbbb",其无重复字符的最长子字符串为"b",长度为1。class DistinctSubstring {public: int longestSubstring(string A, int n) {原创 2017-08-29 00:26:29 · 2921 阅读 · 0 评论