牛客网在线编程:句子反转
题目描述:
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
输入描述:
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
输出描述:
对于每个测试示例,要求输出句子中单词反转后形成的句子
示例1
输入
hello xiao mi
输出
mi xiao hello
思路:
以split(" ")为分隔,将string转为string[]存储,计算string[]的长度,使用stringbuffer从尾到头append即可
输出时,因为尾部没有空格,所以先append后len-1位+" ",再append第一位。保证末尾没有空格
使用栈存储也可以 但输出存储还是要使用stringBuffer,去除最后一位的空格
import java.util.*;
public class Juzifanzhuan {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Scanner sc = new Scanner(System.in);
// StringBuffer sb = new StringBuffer();
// String s = "" ;
// while(sc.hasNext()){
// s = sc.nextLine();
// String[] string = s.split(" ");
// int len = string.length;
// for(int i = len-1; i > 0;i--){
// sb.append(string[i]);
// sb.append(" ");
// }
// sb.append(string[0]);
// System.out.println(sb.toString());
// }
Scanner sc = new Scanner(System.in);
Stack<String> stack = new Stack<>();
StringBuffer sb = new StringBuffer();
while(sc.hasNext()){
String s = sc.nextLine();
String[] strings = s.split(" ");
for(int i = 0; i < strings.length;i++){
stack.push(strings[i]);
}
while(!stack.isEmpty()){
sb.append(stack.pop());
sb.append(" ");
}
sb.delete(sb.length()-1,sb.length());
System.out.println(sb.toString());
}
}
} 相关推荐
Lzs 2020-10-23
聚合室 2020-11-16
零 2020-09-18
Justhavefun 2020-10-22
ChaITSimpleLove 2020-10-06
周游列国之仕子 2020-09-15
afanti 2020-09-16
88234852 2020-09-15
YClimb 2020-09-15
风雨断肠人 2020-09-04
卖口粥湛蓝的天空 2020-09-15
stulen 2020-09-15
pythonxuexi 2020-09-06
abfdada 2020-08-26
梦的天空 2020-08-25