题目来源: HJ13 句子逆序
题目描述:
- 描述:
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 数据范围:输入的字符串长度满足 注意本题有多组输入 - 输入描述: 输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。
- 输出描述: 得到逆序的句子
示例1:
输入:I am a boy
输出:boy a am I
示例2:
输入:nowcoder
输出:nowcoder
思路:
使用split方法将句子中的每次单词进行拆分出来,放入字符串数组中,然后将字符串数组从尾到头输出
具体实现:
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] str1 = str.split(" ");
//split()根据匹配给定的正则表达式来拆分字符串,当前给定的是根据空格拆分
for(int i = str1.length -1;i>=0;i--){
if(i != 0) {
System.out.print(str1[i] + " ");
}else { //因为最后一个输出的单词,是字符串数组中第一个,所以用i == 0来确认
System.out.print(str1[i]); //最后一个输出的单词后面没有空格
}
}
}
- 时间复杂度:O(n) ——进行了遍历的操作
- 空间复杂度:O(n) ——引入了额外的空间