zoukankan      html  css  js  c++  java
  • 实现字符串反转

    描述

    把一个句子的单词进行反转,例如"how are you"改为"you are how"。

    分析

    两次反转,第一次对整个字符串反转为"uoy era woh",第二次再对每个单词进行反转。

    代码

    public class Test {
        //反转chars[start,end]的内容
        public void swap(char[] chars,int start,int end){
            char tmp;
            while(start<end){
                tmp=chars[start];
                chars[start]=chars[end];
                chars[end]=tmp;
                start++;
                end--;
            }
        }
        //
        public String swapString(String str){
            char[] chars=str.toCharArray();
            swap(chars,0,str.length()-1);
            int start=0;
            boolean flag=false;  //是否确定了反转单词的开头位置
            for(int i=0;i<chars.length;i++){
                if(chars[i]==' ') {
                    if (flag) {
                        swap(chars, start, i-1);
                        flag=false;
                    }
                }else{
                    if(!flag){
                        flag=true;
                        start=i;
                    }
                }
            }
            if(flag) swap(chars,start,str.length()-1);  //如果不加得到的结果就会是you are woh
            return new String(chars);
    
        }
        public static void main(String[] args) {
            System.out.println(new Test().swapString("how are you"));
        }
    }
  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/zadomn0920/p/6358220.html
Copyright © 2011-2022 走看看