• 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();
        }
    }
    
  • 相关阅读:
    UIPasteboard 粘贴板
    UIViewController没有随着设备一起旋转的原因
    UIButton 应用选择状态(附:UIButton 常用状态)
    WebService 中参数为枚举时引发的血案
    设计模式(1)之面向对象设计原则 阿正
    2012年年终总结 阿正
    生活工作如登山 阿正
    感谢我的技术总监 阿正
    尽孝要尽早 阿正
    我老了吗?不 你依然年轻 阿正
  • 原文地址:https://www.cnblogs.com/reboot329/p/5887417.html
Copyright © 2020-2023  润新知