导航菜单

技术分享:反转字符串中的单词

给定一个字符串,您需要反转字符串中每个单词的字符顺序,同时仍保留单词的空格和初始顺序。

给定一个字符串,您需要反转句子中每个单词中的字符顺序,同时仍然保留空格和初始单词顺序。

例1:

输入:让我们参加LeetCode比赛

输出: s'teL ekat edoCteeL tsetnoc

注意:在字符串中,每个单词由单个空格分隔,并且字符串中没有多余的空格。

注意:在字符串中,每个单词由单个空格分隔,字符串中不会有任何额外的空格。

解决问题的想法:

每次遇到空格字符时,都可以将最后一个空格字符中的所有字符反转到空格字符。只需注意最后一个字符的结尾,而不是空格字符。再添一个判断。它已经被索引到最后一位吗?

'abc def'原始字符串

['a','b','c','','d','e','f']转换为字符数组

['c','b','a',''.]遍历数组,遇到第一个空格,反转空格和前一个空格之间的字母

[.'','d','e','f']遍历最后一位,而不是空格,仍然可以反转前一空格之间的字母

[.'','f','d','e']反向

'cba fde'转换为字符串输出

爪哇:

类解决方案{

Public String reverseWords(String s){

Int sLen=s.length,k=0,j=0; j记录空格字符前的索引位置

Char strs=s.toCharArray,temp;转换为字符数组

For(int i=0; i sLen; i ++){

如果(strs [i]=='')j=i - 1;遇到空格字符j值减1,是截取的字母段的最后一个字母的索引

否则if(i==sLen - 1)j=i;如果是最后一位,则j值不应减少1

其他继续;

For(; j=k; j--,k ++){exchange location

温度=STR的[J];

STRS [J]=STR的[K];

STRS [K]=温度;

}

k=i + 1;记录空格字符后的k索引位置

}

返回String.valueOf(strs);

}

}

'abc def gh'原始字符串

'hg fed cba'切片特征反转字符串

['hg','fed','cba']拆分分裂字符串

['cba','fed','hg']切片反转数组

'cba fed hg'缝合成一个字符串

Python3:

类解决方案:

Def reverseWords(self,s: str) - str:

返回''。join(s [: -1] .split [: -1])

——