今天參加某所的筆試,剛踩的坑,雖然測試樣例過了,能想到的幾種情況也有測試能通過,但總感覺還是有遺漏的情況沒考慮到。
題目
倒置句子,標點符號不倒置,倒置之後句子的標點不變位置,輸出時候以空格分隔。
樣例
輸入: I like China.
輸出:China. like I
思路
1.字符串長度爲 0,不是合法的輸入,直接return;
2.字符串長度不爲0, 合法輸入,用split(" ") 分割字符串,這個時候也許會存在一種不合法的輸入情況,輸入一個或者多個空格,個人認爲這也是不合法的輸入,所以在正常倒置步驟之前把這個情況也單獨拿出來處理了;
3.正常的輸入,將分割得到的字符串數組逆序輸出即可。
代碼
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String str = in.nextLine();
//System.out.println(str.length());
if (str.length() == 0) { // 字符串長度爲0的時候,無意義
return;
} else { // 字符串長度
String[] item = str.split(" ");
int len = item.length;
System.out.println(len);
if (len == 0){ // 輸入的字符串裏只有空格,沒有句子
return;
}
System.out.print(item[len - 1]);
for (int i = len - 2; i >= 0; i--) {
System.out.print(" " + item[i]);
}
}
}
}
對這個題用這種思路解答是否正確並不敢確定,也許會有漏解的情況,歡迎各位大佬批評指正!