当前位置: 首页 > 后端技术 > Java

LeetCode-151-FlipWordsinaString

时间:2023-04-01 16:35:42 Java

FlipWordsinaString题目描述:给定一个字符串s,将字符串中的所有单词一一翻转。单词是由非空白字符组成的字符串。s用至少一个空格分隔字符串中的单词。请返回一个字符串,将s中的单词反转并用一个空格连接。解释:输入字符串s可以在单词之前、之后或之间包含额外的空格。翻转后单词应该只用一个空格分隔。翻转的字符串中不应包含额外的空格。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:字符串遍历首先,如果字符串s为空字符串或者只有空格,则直接返回空字符串。否则先去掉s前后的空格,遍历字符串s,声明一个单词列表words记录遍历的单词,临时处理lastChar记录最后一个字符,将lastChar初始化为空格。遍历过程如下:如果当前字符和前一个字符是空格,则跳过处理下一个字符;如果当前字符是空格,而前一个字符不是空格,则表示前一个字符是当前单词的结束符号,将该单词添加到单词列表中;如果当前字符不是空格且前一个字符是空格,则表示当前字符是一个单词的起始符号;如果当前字符和前一个字符都不是空格,则表示当前单词还没有结束。遍历完成后,将当前最后一个单词添加到单词列表words中,然后使用Collections.reverse方法将单词列表单词倒序排列,最后使用String.join("",words)方法将单词分开带空格并返回。importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;publicclassLeetCode_151{publicstaticStringreverseWords(Strings){if(s==null||s.length()==0||s.trim().length()==0){返回"";}Listwords=newArrayList<>();s=s.trim();StringBuildercurWord=newStringBuilder();charlastChar='';对于(inti=0;i