【浙江大學PAT真題練習乙級】1009 說反話 (20分)真題解析

題目描述

  給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出

輸入格式

  測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。

輸出格式

  每個測試用例的輸出佔一行,輸出倒序後的句子。

輸入樣例

Hello World Here I Come

輸出樣例

Come I Here World Hello

思路解析

  1. 將數據整行讀入;
  2. for循環倒序,依據空格將單詞劃分出來並輸出;
  3. 第一個單詞前面沒有空格,需要單獨拿出來;

C++實現

#include <iostream>
using namespace std;

int main() {
	string input_data;
	getline(cin, input_data);
        int end_local = input_data.length()-1;
//        cout<<end_local;
	for(int i=input_data.length()-1; i>=0; i--){
	    if(input_data[i]==' '){
	        for(int j=i; j<end_local; j++){
	            cout<<input_data[j+1] ;
	        }
                cout<<' ';
	        end_local = i-1;
	   }
	   if(i==0){
	       for(int j=i; j<=end_local; j++){
	            cout<<input_data[j];
	        }
	   }
	}
	
	return 0;
}

Python實現

input_data = input().split(" ")
len_data = len(input_data)
for i in range(len_data):
    if i+1==len_data:
        print(input_data[-(i+1)], end="")
    else:
        print(input_data[-(i+1)], end=" ")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章