LeetCode 第十二题反转字符串传输门:LeetCode012 : 反转字符串
今天给你们分享的是LeetCode 数组与字符串 第十三题:反转字符串中的单词 III,为面试而生,期待你的加入。python
“Use the utility in the API is recommended in the project. But if you use it in an interview, you will definitely fail .”
给定一个字符串,你须要反转字符串中每一个单词的字符顺序,同时仍保留空格和单词的初始顺序。面试
输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"
在字符串中,每一个单词由单个空格分隔,而且字符串中不会有任何额外的空格。数组
这个题目,看到第一眼,感受有点难,我一看到题目,还觉得是一个字符串里有英文单词,只用识别英文单词,而后把英文单词逆转就好,后来仔细一看,是一段只由英文单词和空格组成的字符串,这样的话,就简单了不少,具体思路以下图所述:图片微信
1.快捷的方法:markdown
时间复杂度:O(n)
毕竟仍是得把每一个单词都遍历一遍~app
class Solution(object): def reverseWords(self, s): """ :type s: str :rtype: str """ # 根据空格,把字符串分隔开 r_list = s.split(" ") # 把列表每一个单词字符串逆转 for i in range(len(r_list)): r_list[i] = r_list[i][::-1] # 用 “ ” 链接列表的每一个单词 result_s = " ".join(r_list) return result_s
(1)切片/join操做,前一篇Python小知识 | 这些技能你不会?(一)有较详细介绍。ide
(2)split函数介绍
Python split((str, num) 经过指定分隔符对字符串进行切片,若是参数 num 有指定值,则仅分隔 num 个子字符串。
参数介绍:函数
str -- 分隔符,默认为全部的空字符,包括空格、换行(\n)、制表符(\t)等。 num -- 分割次数。
(3)提交结果学习
提交结果测试
测试数据:30组
运行时间:32ms
击败人百分比:94.56%
2.本身动手,丰衣食足?
遍历,分组都本身动手实现
时间复杂度:O(n)
class Solution1(object): def reverseWords(self, s): """ :type s: str :rtype: str """ # 根据空格,把字符串分隔开 s = s + ' ' r_list = [] word = '' flag = 0 for i in s: if i != " ": word = word + i flag = 1 else: if flag == 1: r_list.append(word) word = '' flag = 0 # 把列表每一个单词字符串逆转 for i in range(len(r_list)): r_list[i] = self.reverseString(r_list[i]) # 用 “ ” 链接列表的每一个单词 result_s = '' for i in range(len(r_list)): if i == len(r_list)-1: result_s = result_s + r_list[i] break result_s = result_s + r_list[i] + " " return result_s # leetcode12中本身实现字符串逆转 def reverseString(self, s): """ :type s: str :rtype: str """ result = list(s) for i in range(len(result)//2): temp = result[len(result)-i-1] result[len(result)-i-1] = result[i] result[i] = temp return ''.join(result)
测试数据:30组
运行时间:204ms
击败人百分比:2.89%
虽然beat的人很少,但我有想法,我骄傲啊~
感受很酷,感受很努力,现实很残酷,有没有这种感受?
昨天立冬,天气是真的变冷了,你们要记得多穿衣服,别感冒哦~
不要忘记学习,不要忘记学习,不要忘记学习。
最近广告[互推和广告]有点多,干货比较少,但愿你们谅解,说几点感悟:
第一,互推,为了公众号能越作越好,必不可少的,我的的能力有限,不能每一篇文章都是爆文,因此见谅,并且我通常互推也都是python公众号,都是作公众号认识的朋友,因此才诚心推荐给你们的;
第二,接商业广告,学生党,花时间运营公众号不简单,作一篇推文可能花的5,6个小时,刚开始花两三天也是常有的事,生活不易,有合适的,不错的广告商,每个广告商我都是深刻了解了的,至少没有骗钱圈钱的机构,这样赚点生活费,我以为不为过吧;
第三,关于文末鸡腿,点赞,转发,留言的事情,的确少的可怜,因此但愿你们之后点开推文多帮帮忙,点一下,你们多互动,个人学习积极性也高些,可能这篇推文你学到的不多,说不定下篇就能学不少了呢?
第四,交流群,目前主要我一我的管理,还有一个研二的学长帮忙看一个群,忙不过来,回答你们问题慢了,也不要见怪,想加群的加我微信:zs820553471。
但愿多多支持,在公众号上,要是说100%的心,我只能给你们50%,这50%无私分享学习,交流,剩下的50%,怪我,被利益和生活熏黑了。
坚持 and 努力 : 终有所获。
END
往期精彩
LeetCode012:反转字符串
从00-90后的微信昵称,发现以下规律。。。
用python对你的微信进行骚操做
爬取《悲伤逆流成河》猫眼信息 | 郭敬明五年电影最动人之做
进学习交流群
不失联,扫码加X先生微信学习交流
舒适提示
欢迎你们转载,转发,留言,点赞支持X先生。
文末广告点一下也是对X先生莫大的支持。
作知识的传播者,随手转发。
▼
更多精彩推荐,请关注咱们
▼攒点钱买棉衣