翻转单词顺序列

翻转单词顺序列

https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3?tpId=13&&tqId=11197&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

先将每个单词翻转,然后再将整个字符数组翻转

char[] s = {am. I}
每个单词翻转
char[] s = {.ma I}
整个翻转 char[] s = {I am.}

public String ReverseSentence(String str) {
        int n = str.length();
        int i = 0, j = 0;
        char[] s = str.toCharArray();
        while(j <= n){
            if(j == n || s[j] == ' '){
                reverse(s,i,j-1);
                i = j+1;
            }
            j++;
        }
        reverse(s,0,n-1);
        return new String(s);
    }

    public void reverse(char[] s,int i, int j){
        while(i<j)
            swap(s,i++,j--);
    }

    public void swap(char[] s,int i, int j){
        char tmp = s[i];
        s[i] = s[j];
        s[j] = tmp;
    }

剑指offer 文章被收录于专栏

为刷过的每一道题都书写一篇题解,便于重复练习~

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 10:39
一个证都没&nbsp;我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
机械打工仔:有说的你怀疑一下就行了,直接问也太实诚了
点赞 评论 收藏
分享
07-11 11:15
中南大学 Java
好可爱的hr姐姐哈哈哈哈
黑皮白袜臭脚体育生:兄弟们貂蝉在一起,吕布开了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务