zoukankan      html  css  js  c++  java
  • 剑指 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();
        }
    }
  • 相关阅读:
    解决vs code just-in-time报错的方法
    c++ 右值引用
    c++11 知识点
    ip路由名词介绍&琐碎知识
    第二次结对作业
    软工程第三次作业
    第二次作业
    软件工程第一次作业
    理解Object.defineProperty()
    concat()拷贝的局限性
  • 原文地址:https://www.cnblogs.com/peanut-zh/p/14151573.html
Copyright © 2011-2022 走看看