首页 > 编程语言 > 详细

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

时间:2015-08-27 23:10:34      阅读:416      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!