Hackerrank,join與split空格妙用

Problem Statement正則表達式

You are given a string S. Your task is to capitalize each word of S.api

Input Format函數

A single line of input containing the string, S.測試

Constraintsspa

0<len(S)<1000code

The string consists of alphanumeric characters and spaces.orm

Output Formatci

Print the capitalized string, S.input

Sample Inputstring

hello world

Sample Output

Hello World


一、首先我嘗試寫程序,個人代碼以下:

[print(str.capitalize(s), end=' ') for s in input().split()]

結果運行錯誤,由於我忽略了多個空格的影響

二、用正則表達式解決,

import re

print re.sub(r'\w+', lambda x : x.group(0).capitalize(), raw_input())

運行成功

三、官方提供的答案,真是使人意外啊!!!

print ' '.join(word.capitalize() for word in raw_input().split(' '))

經過這種方式能解決多個空格的問題,我不能明白爲什麼能這麼做,只能猜想join函數能記住split函數分出的空格。

經測試,這樣也是能夠的,以下:

a=[word.capitalize() for word in raw_input().split(' ')]

 print ' '.join(a)

相關文章
相關標籤/搜索