zoukankan      html  css  js  c++  java
  • leetcode151. 翻转字符串里的单词

    给定一个字符串,逐个翻转字符串中的每个单词。

     

    示例 1:

    输入: "the sky is blue"
    输出: "blue is sky the"

    示例 2:

    输入: "  hello world!  "
    输出: "world! hello"
    解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

    示例 3:

    输入: "a good   example"
    输出: "example good a"
    解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

     

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/reverse-words-in-a-string
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解答;

    这里吐槽一句:别用坑爹的spilt函数,真的坑死了,还是自己写一个用吧,其他没什么,就是将字符串分割放入一个栈中,最后在取出来就倒序了。

     1 class Solution {
     2     public String reverseWords(String s) {
     3         if(s==null||s.length()==0)
     4             return s;
     5         LinkedList<String> list=new LinkedList<>();
     6         helper(list,s);
     7         if(list.isEmpty())
     8             return "";
     9         StringBuilder sb=new StringBuilder();
    10         while(!list.isEmpty())
    11             sb.append(list.pop()+" ");
    12         return sb.toString().substring(0,sb.length()-1);
    13         
    14         
    15     }    
    16     public void helper(LinkedList<String>list,String s)
    17     {
    18         int r=0;
    19         int l=0;
    20         boolean flag=false;
    21         while(r<s.length())
    22         {
    23             if(s.charAt(r)==' '&&flag==true)
    24             {
    25                 String str=s.substring(l,r);
    26                 list.push(str);
    27                 flag=false;
    28                 r++;
    29             }
    30             else if(s.charAt(r)==' '&&flag==false)
    31             {
    32                 r++;
    33             }
    34             else if(s.charAt(r)!=' '&&flag==false)
    35             {
    36                 flag=true;
    37                 l=r;
    38                 r++;
    39             }
    40             else
    41                 r++;   
    42         }
    43         if(flag)
    44             list.push(s.substring(l,r));
    45     }
    46 }
    View Code
  • 相关阅读:
    js
    DOM
    css
    html
    java虚拟机
    java并发
    java容器
    java基础
    计算机网络面试题
    计算机操作系统-设备管理
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11875631.html
Copyright © 2011-2022 走看看