码迷,mamicode.com
首页 > 编程语言 > 详细

算法分析-如何实现字符串的反转

时间:2015-08-27 23:13:37      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:字符串反转   字符串   

问题:将一个句子中的单词进行反转,例如:“how are you”,进行反转后的结果为“you are how”。
解题思路:将这个句子进行两次反转操作即可。

1)对整个字符串进行字符反转,反转结果“uoy era woh”;
2)接下来对每个单词进行字符反转,结果就是“you are how”。

源代码:

/*
 问题:将一个句子中的单词进行反转,例如:“how are you”,进行反转后的结果为“you are how”。
 解题思路:将这个句子进行两次反转操作即可。
 1)对整个字符串进行字符反转,反转结果“uoy era woh”;
 2)接下来对每个单词进行字符反转,结果就是“you are how”。
*/
public class SwapString{
    public  void swap(char []cArr , int front , int end){
        while(front<end){
            char tmp = cArr[end];
            cArr[end] = cArr[front];
            cArr[front] = tmp;
            front++;
            end--;
        }
    }

    public String swapWrods(String s){
        char []cArr = s.toCharArray();
        //对整个字符串进行字符反转操作
        swap(cArr,0,cArr.length - 1);
        int begin = 0 ;
        //对每个单词进行字符反转操作
        for(int i = 1; i<cArr.length;i++){
            if(cArr[i] ==‘ ‘){
                swap(cArr,begin,i-1);
                begin = i+1;
            }
        }
        //处理最后一个单词
        swap(cArr, begin, cArr.length-1);
        return new String(cArr);
    }
    public static void main(String []args){
        String str = "how are you";
        System.out.println(new SwapString().swapWrods(str));
    }
}

版权声明:本文为博主原创文章,如需转载请注明出处并附上链接,谢谢。

算法分析-如何实现字符串的反转

标签:字符串反转   字符串   

原文地址:http://blog.csdn.net/yannanying/article/details/48035603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!