您的位置:首页 > 其它

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

2015-08-27 21:11 471 查看
问题:将一个句子中的单词进行反转,例如:“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));
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: