首页 > 代码库 > 字符串练习题(三):句子的逆序

字符串练习题(三):句子的逆序

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。

给定一个原字符串A和他的长度,请返回逆序后的字符串。

测试样例:
"dog loves pig",13
返回:"pig loves dog"
public class Reverse {    public String reverseSentence(String A, int n) {        // write code here        if(n==0||null==A) return A;        char[] as=A.toCharArray();        reverseWord(as);        return String.valueOf(as);             }    public void reverseWord(char[] chas){        if (null==chas ||chas.length==0) return;        reverse(chas,0,chas.length-1);        int l=-1;        int r=-1;        for(int i=0;i<chas.length;i++){            if(chas[i]!=‘ ‘){                l=i==0||chas[i-1]==‘ ‘?i:l;                r=i==chas.length-1||chas[i+1]==‘ ‘?i:r;            }            if (l != -1 && r != -1) {                reverse(chas, l, r);                l = -1;                r = -1;            }        }             }    public void reverse(char[] as,int start,int end){        char temp=0;        while(start<end){            temp=as[start];            as[start]=as[end];            as[end]=temp;            start++;            end--;             }    }}

 

字符串练习题(三):句子的逆序