13、反转字符串III

1、题目大意:

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

2、解题思路

该题目的输入为一个以单一空格分隔的单词字符串序列。要求输出每个单词反序构成的字符串序列。该题目还算比较简单。因为是单一空格连接的字符序列,所以可以采用字符串的分隔方法。将每个单词分隔出来,然后反序放入新序列即可。

3、代码如下:

class Solution {
    public String reverseWords(String s) {
       int length=s.length();
       char [] newChars=new char[length];
       int n=0;
       String [] oldChars=s.split(" ");
       for(int i=0;i<oldChars.length;i++){
           char [] tempChars=oldChars[i].toCharArray();
           for(int j=tempChars.length-1;j>=0;j--){
               newChars[n++]=tempChars[j];
           }
           if(n!=length){
            newChars[n++]=' ';  //最后没有空格
           }
       }
        return String.valueOf(newChars);
    }
}

public class MainClass {
    public static String stringToString(String input) {
        if (input == null) {
            return "null";
        }
        return Json.value(input).toString();
    }
    
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = in.readLine()) != null) {
            String s = stringToString(line);
            
            String ret = new Solution().reverseWords(s);
            
            String out = (ret);
            
            System.out.print(out);
        }
    }
}

4、运行结果

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符串属于标量存储、不可改变、顺序访问的数据类型。字符串属于序列的一种,因此对字符串可行的序列操作对类似元组和列表...
    梦回吹角连营阅读 4,897评论 0 1
  • 有一个场景,需要输入短信验证码。So,尝试着自己设计了一个这样的View。参考了一些App,发现建设银行手机银行的...
    Jaesoon阅读 4,628评论 0 22
  • 在简书写作一个月了,我是一个很懒的人,所以只写了六篇文章,草稿箱里十几篇文章都只写了几百字,一个开头,每次都是有一...
    仰望look月阅读 1,501评论 0 0
  • 题图:当年我在球场出手投篮,好基友试图封盖我。少时我最喜欢的女孩子,最后却落入他手。 突如其来的思乡之情喷涌而出,...
    丈八二桃阅读 3,538评论 1 0