LeetCode(剑指 Offer)- 58 - I. 翻转单词顺序

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 58 - I. 翻转单词顺序相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 腾讯(Tencent)
  • 谷歌(Google)
  • 百度
  • 华为
  • 小米集团
  • 亚马逊
  • 微软(Microsoft)
  • 搜狐
  • 快手
  • 美团

AC 代码

  • Java
// 解决方案(1)
class Solution 
    public String reverseWords(String s) 
		String[] arr = s.trim().split(" ");
		StringBuilder sb = new StringBuilder();
		for (int i = arr.length - 1; i >= 0; i--) 
			if ("".equals(arr[i])) 
				continue;
			
			if (i != arr.length - 1) 
				sb.append(" ");
			
			sb.append(arr[i]);
		
		return sb.toString();
	


// 解决方案(2)
class Solution 
    public String reverseWords(String s) 
        s = s.trim();                                    // 删除首尾空格
        int j = s.length() - 1, i = j;
        StringBuilder res = new StringBuilder();
        while (i >= 0) 
            while (i >= 0 && s.charAt(i) != ' ') i--;     // 搜索首个空格
            res.append(s.substring(i + 1, j + 1) + " "); // 添加单词
            while (i >= 0 && s.charAt(i) == ' ') i--;     // 跳过单词间空格
            j = i;                                       // j 指向下个单词的尾字符
        
        return res.toString().trim();                    // 转化为字符串并返回
    

以上是关于LeetCode(剑指 Offer)- 58 - I. 翻转单词顺序的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(剑指 Offer)- 58 - II. 左旋转字符串

LeetCode(剑指 Offer)- 58 - II. 左旋转字符串

LeetCode剑指 Offer 58 - II. 左旋转字符串(C++)

[LeetCode]剑指 Offer 58 - I. 翻转单词顺序

Leetcode剑指 Offer 58 - II. 左旋转字符串(简单模拟)

[LeetCode]剑指 Offer 58 - II. 左旋转字符串