力扣每日一题Day21
你得先跨越恐惧才能获得你所想要的一切。
题目描述:
给你一个字符串 s
,请你反转字符串中 单词 的顺序。
单词 是由非空格字符组成的字符串。s
中使用至少一个空格将字符串中的 单词 分隔开。
返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。
注意:输入字符串 s
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
解题代码:
1 | class Solution { |
解读与收获:
用了一个笨但有效的方法:先设置一个标志位tag,从头遍历字符串,遇到空格且标志位为0时,则跳过空格继续遍历,遇到非空格则将标志位置1,并加到word中,这样当再次遇到空格时,标志位为1代表word中已经有了一个完整的单词,然后将word和ans结合,注意此处word要在ans前。这里有几个值得注意的地方,如果此时ans为空,则不能使用ans = word + “ “ + ans这种形式(会导致结尾多空格),必须区分出此情况。另外结束遍历时,word可能不为空(因为还没有来得及加入到ans,遍历就到结束条件了),此时应该用同样的方法将word与ans结合。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 驴の奇思妙想!
评论