Python代码在单次遍历中将空格移动到字符串的前面
给定一个包含单词和空格的字符串,编写一个程序将所有空格移动到字符串的前面,只遍历字符串一次。
例子:
Input : str = "geeks for geeks"
Output : ste = " geeksforgeeks"
Input : str = "move these spaces to beginning"
Output : str = " movethesespacestobeginning"
There were four space characters in input,
all of them should be shifted in front.
此问题已有解决方案,请参考在单次遍历链接中将空格移到字符串前面。
我们将在Python中使用 List Comprehension 快速解决这个问题。
方法:
- 使用列表推导遍历输入字符串并创建一个没有任何空格字符的字符串。
- 现在要知道原始字符串中有多少个空格字符,只需将原始字符串和新字符串的长度差。
- 现在创建另一个字符串并在开头附加空格字符。
# Function to move spaces to front of string
# in single traversal in Python
def moveSpaces(input):
# Traverse string to create string without spaces
noSpaces = [ch for ch in input if ch!=' ']
# calculate number of spaces
space= len(input) - len(noSpaces)
# create result string with spaces
result = ' '*space
# concatenate spaces with string having no spaces
result = '"'+result + ''.join(noSpaces)+'"'
print (result)
# Driver program
if __name__ == "__main__":
input = 'geeks for geeks'
moveSpaces(input)
输出:
" geeksforgeeks"