• ledecode Reverse Words in a String III


    557. Reverse Words in a String III

    Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

    Example 1:

    Input: "Let's take LeetCode contest"
    Output: "s'teL ekat edoCteeL tsetnoc"

    Note: In the string, each word is separated by single space and there will not be any extra space in the string.

    package leedcode;
    
    class Solution {
    
        public static void main(String[] args) {
    //        String s = "Let's take LeetCode contest";
            String s = "12345";
            System.out.println(s);
            System.out.println(new Solution().reverseWords(s));
        }
    
        public static void reverseWord(char[] chars, int begin, int end) {
    
            for (int i = begin; i <= end; i++) {
                char temp = chars[i];
                chars[i] = chars[end];
                chars[end] = temp;
                end--;
            }
    
        }
    
    
        public String reverseWords(String s) {
    
            char[] chars = s.toCharArray();
            int start = 0;
            int end = 0;
    
            for (int i = 0; i < chars.length; i++) {
    
                if (chars[i] == ' ') {
                    end = i;
                    reverseWord(chars, start, end-1);
                    start = end+1;
                }
                end++;
            }
    
            reverseWord(chars,start,end-1);
    
            return new String(chars);
        }
    }
    

    重新整理逻辑

    class Solution {
       
        
          public static void reverseWord(char[] chars, int begin, int end) {
    
            for (int i = begin; i <= end; i++) {
                char temp = chars[i];
                chars[i] = chars[end];
                chars[end] = temp;
                end--;
            }
    
        }
    
    
        public String reverseWords(String s) {
    
            char[] chars = s.toCharArray();
            int start = 0;
            int end = 0;
    
            for (int i = 0; i < chars.length; i++) {
                if (chars[i] == ' ') {
                    end = i;
                    reverseWord(chars, start, end-1);
                    start = end+1;
                } 
                end++;
            }
            
            reverseWord(chars,start,end-1);
            
            return new String(chars);
        }
    }
  • 相关阅读:
    用MySQL的注意事项
    在win下mysql备份恢复命令概述
    SQL查询结果集对注入的影响与利用
    DIV CSS完美兼容IE6/IE7/FF的通用方法
    使用css实现透视的效果
    ASP.NET几个性能优化的方法
    ASP.NET实现页面传值的几种方法
    ASP.NET配置文件Web.config 详细解释
    黑客域名劫持攻击详细步骤
    FCKeditor的几点修改小结
  • 原文地址:https://www.cnblogs.com/chengpeng15/p/10029860.html
Copyright © 2020-2023  润新知