字符串
字符串类算法题
菜鸡的鼻祖
这个作者很懒,什么都没留下…
展开
-
剑指Offer(第2版)——面试题67:把字符串转换成整数
题目将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。解题思路这道题需要对输入的不同情况考虑全面:指针是否为空指针,字符串是否为空字符串;字符串对于正负号的处理;输入值是否为合法值,即小于等于’9’,大于等于’0’;int为32位,需要判断是否溢出;使用错误标志,区分返回值为0时是合法值0输入还是非法值输入。代码...原创 2020-02-11 23:59:12 · 160 阅读 · 0 评论 -
剑指Offer(第2版)——面试题58:翻转字符串
题目1输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串“I am a student.”,则输出“student. a am I”。解题思路第一步翻转句子中所有的字符,例如l“I am a student.”翻转为“.tneduts a ma I”;第二步再翻转每个单词中字符的顺序,得到最后的结果。代码class...原创 2020-01-17 12:58:55 · 122 阅读 · 0 评论 -
剑指Offer(第2版)——面试题48:最长不含重复字符的子字符串
题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。假设字符串中只包含 ′a′ ~ ′z′ 的字符。例如,在字符串 “arabcacfr” 中,最长的不含重复字符的子字符串是 “acfr”,长度为4。解题思路:我们采用动态规划来求解,首先定义函数 f(i) 表示以第 i 个字符为结尾的不包含重复字符的最大子字符串长度。如果第 i 个字符,在前 i-1 个字...原创 2019-12-12 23:08:29 · 147 阅读 · 0 评论 -
剑指Offer(第2版)——面试题50:第一个只出现一次的字符
题目在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出‘b’。解题思路建立一个哈希表,定义哈希表的键值(Key)是字符,而值(Value)是该字符出现的次数。同时我们需要从头开始扫描字符串两次。第一次扫描字符串时,每扫描到一个字符,就在哈希表的对应项中把次数加1。第二次扫描时,每扫描到一个字符,就能从哈希表中得到该字符出现的次数。这样,第一个只出现一次的字符就是...原创 2019-12-18 22:33:34 · 138 阅读 · 0 评论 -
剑指Offer(第2版)——面试题20:表示数值的字符串
题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”、“5e2”、“-123”、“3.1416”及“-1E-16”都表示数值,但“12e”、“1a3.14”、“1.2.3”、“±5”及“12e+5.4”都不是。补充知识点:e/E科学计数法:这是一种记数的方法。把一个数表示成a(1≤a<10,n为整数)与10的n次幂相乘的形式 。例如:19971...原创 2019-08-14 23:36:25 · 107 阅读 · 0 评论 -
剑指Offer(第2版)——面试题5:替换空格
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,输入“We Are Happy.”,则经过替换之后的字符串为“We%20Are%20Happy.”。1.解题思路:知识拓展:1.时间复杂度:2.空间复杂度:...原创 2019-06-11 22:04:23 · 97 阅读 · 0 评论 -
剑指Offer(第2版)——面试题43:1~n 整数中1出现的次数
题目:输入一个整数n,求从1~n这n个整数的十进制表示中1出现的次数。例如,输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。解题思路:...原创 2019-12-08 20:23:51 · 120 阅读 · 0 评论 -
剑指Offer(第2版)——面试题38:字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a, b, c所能排列出来的所有字符串abc, acb, bac, bca, cab和cba。解题思路:我们把一个字符串看成由两部分组成:第一部分是它的第一个字符,第二部分是后面的所有字符。求整个字符串的排列,可以看成两步:第一步求所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换。下图...原创 2019-12-02 10:21:33 · 99 阅读 · 0 评论