1009 说反话

1009 说反话 (20 分)

题目描述:

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:
每个测试用例的输出占一行,输出倒序后的句子。

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello


解题思路:
根据题意,我们只需要将字符串中的单词拆开,然后逆序拼接起来即可。


代码:

  • Python: 简洁就是美!
def main():
    print(" ".join(input().split(' ')[::-1]))
 
    # input()接收输入的字符串。因为单词之间仅有一个空格,split(' ')就能将这个字符串中的单词分割为列表。
    # 然后[::-1]翻转整个列表,最后使用join函数拼接翻转后的字符串。 
if __name__ == '__main__':
    main()

  • C++ : 天下武功,无坚不摧,唯快不破!
#include<iostream>
#include<vector> 
using namespace std;


int main(){
	//freopen("in.txt", "r", stdin);
	string input_string;
	getline(cin, input_string);
	
	input_string.push_back(' ');
	vector<string> result;
	int start = 0;
	for(int i=0; i<input_string.length(); ++i){
		if(input_string[i] == ' '){
			result.push_back(input_string.substr(start, i-start));
			start =  i+1;	
		}
	}
	
	for(int i=result.size()-1; i>0; --i){
		cout << result[i] << " ";
	}
	cout << result[0] << endl;
	
	return 0;
} 
  • Java: ┓( ´∀` )┏
import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String input_str = in.nextLine();
		String[] str_array = input_str.split("\\s");
		// 将字符串分隔开, "\\s"是空格的正则表达式写法
		in.close();
		// 逆序输出这些单词
		for(int i=str_array.length-1; i>0; --i) {
			System.out.print(str_array[i] + " ");
		}
		System.out.print(str_array[0]);
	}
}

易错点:

  • 注意是将字符串中的单词的顺序翻转而不是整个字符串翻转。

总结:

  • 代码是写给人看的,顺便能够执行而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值