• 剑指 Offer 58


    //双指针
    class Solution {
        public String reverseWords(String s) {
            //处理字符串 首尾空格
            String str = s.trim();
            //双指针
            int right = str.length() - 1;
            //left 指向 最右, 从右向左扫描
            int left = right;
            //结果集
            StringBuilder res = new StringBuilder();
    
            while(left >= 0){
                //找第一个空格
                while(left >= 0 && str.charAt(left) != ' '){
                    left--;
                }
                //找到后,说明现在 双指针的区间内 为一个单词 加入结果集,加一个空格分隔
                res.append(s.substring(left + 1,right + 1) + ' ');
                //跳过单词之间的空格
                while(left >= 0 && s.charAt(left) == ' '){
                    left--;
                }
                //将当前的left 指针 赋值给 right,找下一个单词
                right = left;
            }
            return res.toString().trim();
        }
    }
    class Solution {
        public String reverseWords(String s) {
            //去除首尾空格,并用空格拆分单词
             String[] str = s.trim().split(" ");
             //返回集
             StringBuilder res = new StringBuilder();
    
             for(int i = str.length - 1; i >= 0;i--){
                if(str[i].equals(" ") || str[i].equals("")){
                    continue;
                }
                res.append(str[i]);
                res.append(" ");
             }
             return res.toString().trim();
        }
    }
  • 相关阅读:
    设计模式入门
    Spring Boot 日志
    Spring Boot入门
    Vue--过滤器、指令、插件
    CentOS7更换yum源
    CentOS7中修改运行级别
    Xshell进行远程登录
    Linux的目录结构详情
    通过VMware Tools配置Centos7与本地主机的共享文件夹(亲测)
    eclipse中的Git操作
  • 原文地址:https://www.cnblogs.com/peanut-zh/p/14151573.html
走看看 - 开发者的网上家园