假設有一個擁有數目不等的空格字元的字串,請將其整理成字間洽有一空格字元,也需除去前後空格字元,以及句號逗號驚嘆號前的空格。程式執行不另外產生字串。
時間要求:O(n)
舉例
Input: str = " Hello guys . Welcome to Disneyland . "; Output: "Hello guys. Welcome to Disneyland." Input: str = "Disneyland"; Output: "Disneyland" (無需改變)
解法之一:利用Python 3 已定義之功能
# Python program to Remove
# extra spaces from a string
input_string = \
' Hello guys . Welcome to Disneyland . '
output_string = []
space_flag = False # Flag to check if spaces have occured
for index in range(len(input_string)):
if input_string[index] != ' ':
if space_flag == True:
if (input_string[index] == '.'
or input_string[index] == '?'
or input_string[index] == ','):
pass
else:
output_string.append(' ')
space_flag = False
output_string.append(input_string[index])
elif input_string[index - 1] != ' ':
space_flag = True
print (''.join(output_string))
留言列表