zoukankan      html  css  js  c++  java
  • 151. Reverse Words in a String

    没啥难的,难点在于各种带空格的edge cases.

    然后 按空格分是

    str.split("s+");

    public String reverseWords(String s) 
        {
            if(s == null) return null;
            s = s.trim();
            if(s.length() == 0) return "";
    
            int length = s.split("\s+").length;
    
            StringBuilder[] sbArray = new StringBuilder[length];
    
            StringBuilder res = new StringBuilder();
            int n = 0;
            for(String tempStr : s.split("\s+"))
            {
                StringBuilder tempSB = new StringBuilder(tempStr);
                sbArray[n++] = tempSB;
                
            }   
    
            for(int m = length-1; m >= 0; m--)
            {
                res.append(sbArray[m]).append(" ");
            }
    
            return res.toString().trim();
    
    
        }
    



    二刷。

    感觉这个题是E难度的。。可能本意是考C,C++这种指针运算,in-place的话还有那么点意思。

    对于Java来说比较直接,用split去掉空格顺便变成String[],然后倒着遍历就行了。。

    需要注意的就是split()里面的regular expression,我到现在都记不住,每次都上网查。。

    网络课和编译器课都学过,学过就忘,忘了就查,羞耻地活在这个世界上……

    image

    public class Solution 
    {
        public String reverseWords(String s) 
        {
            if(s.length() == 0) return "";
            s = s.trim();
    
            String[] strArray = s.split("\s+");
            
            String res = new String();
            for(int i = strArray.length-1;i>=0;i--)
            {
                res += strArray[i] + " ";
            }
            
            return res.trim();
        }
    }
    



    三刷。

    用split来做。。
    分完之后倒着添加,注意仔细。。

    public class Solution {
        public String reverseWords(String s) {
            if (s.length() == 0) return s;
            s = s.trim();
            if (s.length() == 0) return "";
            String[] str = s.split("\s+");
            StringBuilder sb = new StringBuilder();
            for (int i = str.length - 1; i >= 0; i--) {
                sb.append(str[i]).append(" ");;
            }
            return sb.toString().trim();
        }
    }
    
  • 相关阅读:
    Kafka 高级API 实战
    CDH 5.16.1 离线安装 Spark 2.3
    CDH5.16.1 离线安装 Kafka
    CDH5.16.1新增节点
    mysql搭建主从结构
    Kerberos常见错误
    expect实现脚本的 自动交互
    寒假day27
    寒假day26
    寒假day25
  • 原文地址:https://www.cnblogs.com/reboot329/p/5887417.html
Copyright © 2011-2022 走看看