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

Posted 林木声

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点 符号和普通字母一样处理相关的知识,希望对你有一定的参考价值。

题目:

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

 

解答:

 1 public class Solution {
 2     public static void main(String[] args) {
 3         String string = "I am a student.";
 4         reverseSentence(string);
 5     }
 6 
 7     private static void reverseSentence(String str) {
 8         if(str == null) {
 9             return;
10         }
11 
12         char[] arr = str.toCharArray();
13         reverse(arr, 0, arr.length-1);
14 
15         int start = 0;
16         int end = 0;
17         for(int i = 0; i < arr.length; i++) {
18             if(arr[i] == \' \') {
19                 reverse(arr, start, end);
20                 end++;
21                 start = end;
22             } else if(i == arr.length) {
23                 end++;
24                 reverse(arr, start, end);
25             } else {
26                 end++;
27             }
28         }
29 
30         for(char c: arr) {
31             System.out.print(c);
32         }
33     }
34 
35     private static void reverse(char[] arr, int start, int end) {
36         for(int i = start, j = end; i <= j; i++,j--) {
37             char temp = arr[i];
38             arr[i] = arr[j];
39             arr[j] = temp;
40         }
41     }
42 }

 

 

以上是关于输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点 符号和普通字母一样处理的主要内容,如果未能解决你的问题,请参考以下文章

翻转句子中单词的顺序 C语言

程序员面试50题—翻转句子中单词的顺序[算法]

翻转单词顺序

反转单词顺序 VS 左旋转字符串

输入一个英文名字,翻转句子中单词的顺序。要求单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如,若输入“”I am a student.“”则输出“”stude

剑指[58]----翻转单词的顺序