close

假設有一個擁有數目不等的空格字元的字串,請將其整理成字間洽有一空格字元,也需除去前後空格字元,以及句號逗號驚嘆號前的空格。程式執行不另外產生字串。

時間要求: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))
 

doraemon.png

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 天上人間 的頭像
    天上人間

    已將世界等微塵 空裡浮花夢裡身

    天上人間 發表在 痞客邦 留言(0) 人氣()