java题目 单词倒排

2022/3/4 11:46:42

本文主要是介绍java题目 单词倒排,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

描述

对字符串中的所有单词进行倒排。

说明:

1、构成单词的字符只有26个大写或小写英文字母;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;   数据范围:字符串长度满足 1 \le n \le 10000 \1≤n≤10000 

输入描述:

输入一行以空格来分隔的句子

输出描述:

输出句子的逆序

示例1

输入:
I am a student
输出:
student a am I

示例2

输入:
$bo*y gi!r#l
输出:
l r gi y bo

 

 

 1 import java.io.*;
 2 
 3 public class Main{
 4     public static void main(String[] args) throws IOException {
 5         InputStream in = System.in;
 6         int available = in.available();
 7         char[] arr = new char[available];
 8         int off_word = 0;
 9         int off_end = arr.length;
10         char c;
11         
12         for(int i = 0; i < available; i++) {
13             c = (char)in.read();
14             if((c >= 'a' && c <= 'z') || (c >='A' && c <= 'Z')) {
15                 arr[off_word] = c;
16                 off_word++;
17             }else if (off_word > 0) {
18                 //遇到非单词字符,上面已经统计了该单词字符数量off_word
19                 //将该单词拷贝到末尾,假如arr长度16,第一个单词字符为1个,目标索引则为:arr[16-1]
20                 System.arraycopy(arr, 0, arr, off_end - off_word, off_word);
21                 off_end = off_end - (off_word + 1);
22                 off_word = 0;
23                 arr[off_end] = ' ';
24             }
25         }
26         //valueOf将 char 数组 data 中 由 data[offset] 开始取 count 个元素转换成字符串
27         System.out.println(String.valueOf(arr, off_end +1 ,arr.length - (off_end + 1)));
28     }
29 }

 



这篇关于java题目 单词倒排的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程