LeetCode 解题报告 Reverse Words in a String

题目描述:

Given an input string, reverse the string word by word.

For example,
Given s = "the sky is blue",
return "blue is sky the".

click to show clarification.

Clarification:

  • What constitutes a word?
    A sequence of non-space characters constitutes a word.
  • Could the input string contain leading or trailing spaces?
    Yes. However, your reversed string should not contain leading or trailing spaces.
  • How about multiple spaces between two words?
    Reduce them to a single space in the reversed string.
分析:

这个题刚拿到手的时候感觉很简单,并且很快把代码实现,但是提交之后错误百出

1,如果输入字符串为空的时候应该返回“”;

2,就是关于空格的取舍问题,虽然java中用String.Split(" ")可以把字符串中的空格去除,但是当有多个空格连续,或者在开头或者结束的空格

      的处理是非常关键的,这也是题目考查的重点

3,我在刚开始解决这个问题的时候忽略了对开始为空格的考虑,这还包括两种情况,一种是只有一个空格,一种是有连续多个空格

         这里我跳出了一开始的思路,就直接判断是不是开始字符就可以了



代码:


public static String reverseWords(String s) {
String Scut[] = s.split(" ");
if(Scut.length ==0){
return "";
}
String Ssor = "";
int i=Scut.length-1;
while(i>=0){
if(Ssor.length() ==0){
//The String`s Begin
if(Scut[i].length() != 0){
Ssor += Scut[i];
}
}else{
if(Scut[i].length() != 0){
Ssor += " " + Scut[i];
}
}
i--;
}
return Ssor;
        
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值