剑指offer_翻转单词序列

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?

解题思路

  • 类似于字符串反转,但是要求空格前后的字符串又是正序的,那么这个可以考虑用字符串正则将字符串分割开得到单个字符串拼接
  • 其次,我考虑的是进行字符串遍历用substring确定一个单词然后和结果组合

java源代码(字符串遍历)

public class Solution {
    public String ReverseSentence(String str) {
        if (str==null || str.length()==0) return "";
        String result = "";
        int start = 0;
        for(int i=0; i<str.length(); i++) {
            if (str.charAt(i)==' ') {
                result = " "+ str.substring(start, i) + result;
                start = i+1;
            } else if (i==str.length()-1) {
                result = str.substring(start, str.length()) + result;
            }
        }
        return result;
    }
}

java源代码(字符串分割)

public class Solution {
    public String ReverseSentence(String str) {
        if (str==null || str.length()==0) return "";
        String result = "";
        String[] arr = str.split("\\s+");
        if (arr.length==0) return str;
        for (int i=arr.length-1; i>=0; i--) {
            if (i==arr.length-1) result += arr[i];
            else result += " " + arr[i];
        }
        return result;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 剑指Offer笔试题(3) 题目来源:牛客网 题目一 和为S的连续正数序列 描述: 小明很喜欢数学,有一天他在做...
    Torang阅读 2,761评论 0 4
  • 说明: 本文中出现的所有算法题皆来自牛客网-剑指Offer在线编程题,在此只是作为转载和记录,用于本人学习使用,不...
    秋意思寒阅读 1,218评论 1 1
  • 剑指offer线性数据结构 剑指offer是找工作开始后刷的第一本书,刷题用牛客网。这本书可以说是已经总结归纳的很...
    锅锅Iris阅读 1,083评论 0 2
  • 剑指offer第二版总结——基于牛客网 1. 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增...
    小张同学_loveZY阅读 2,746评论 0 3
  • 二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到...
    Catcher07阅读 815评论 0 1

友情链接更多精彩内容