美文网首页
面试题42:翻转单词顺序

面试题42:翻转单词顺序

作者: liuqinh2s | 来源:发表于2019-03-26 09:28 被阅读0次
public class Solution {
    public String ReverseSentence(String str) {
        if("".equals(str)){
            return "";
        }
        char[] c = str.toCharArray();
        reverse(c, 0, c.length-1);
        int begin = 0;
        for(int i=0;i<c.length;i++){
            if(c[i]==' ' && c[begin]!=' '){
                reverse(c, begin, i-1);
                begin = i+1;
            }else if(i==c.length-1 && c[begin]!=' ') {
                reverse(c, begin, i);
                begin = i+1;
            }else if(c[begin]==' '){
                begin++;
            }
        }
        return new String(c);
    }

    private void reverse(char[] c, int begin, int end){
        for(int i=0;i<=(end-begin)/2;i++){
            char temp = c[begin+i];
            c[begin+i] = c[end-i];
            c[end-i] = temp;
        }
    }
}

这一题要考虑的异常输入还挺多的,比如只有一个单词的情况,比如一个空格的情况。字符串结尾的处理情况和空格的处理情况又有所不同。

相关文章

  • 面试题42:翻转单词顺序

    这一题要考虑的异常输入还挺多的,比如只有一个单词的情况,比如一个空格的情况。字符串结尾的处理情况和空格的处理情况又...

  • 剑指offer第二版-58.翻转单词顺序

    本系列导航:剑指offer(第二版)java实现导航帖 面试题58:翻转单词顺序 题目要求:输入一个英文句子,翻转...

  • 面试题58(剑指offer)--翻转字符串

    题目一: 翻转单词顺序。输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变。为简单起见,标点符号和普通字...

  • 面试题58 - I. 翻转单词顺序

    翻转单词顺序 题目描述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通...

  • 翻转字符串

    题目:翻转单词顺序。 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字...

  • 翻转字符串

    题目一:翻转单词顺序。 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通...

  • 翻转单词顺序

    牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感...

  • 翻转单词顺序

    对cpp还是不熟啊,尤其是char, char*, char[]这块。 上边s1 是不能被修改的,s2可被修改。

  • 翻转单词顺序

    题目描述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。...

  • 翻转单词顺序

网友评论

      本文标题:面试题42:翻转单词顺序

      本文链接:https://www.haomeiwen.com/subject/prmwvqtx.html