计算字符串中单词之间的空格数
Count the number of spaces between words in a string
我在 Hackerrank 上做 this 问题,我想到了这个想法,其中包括拆分输入并在之后加入它(请参阅下面的我的实现)。但是,其中一个测试用例包含输入 (hello< multiple spaces> world),这导致我的代码崩溃,因为输入字符串的每个单词之间有超过 1 个 space。所以,我只是想知道是否有人可以帮我修复我的代码,我只是想知道如何计算 [=31] 中的字符串中有多少 spaces(尤其是多个 spaces) =].我找到了如何在 Java 中计算 spaces,但在 Python 中找不到。对于测试用例,我附上了图片。
提前致谢。
我的实现:
input_string = input()
splitter = input_string.split()
final = []
for i in range(0,len(splitter)):
for j in range(0,len(splitter[i])):
if(j==0):
final.append(splitter[i][j].upper())
else:
final.append(splitter[i][j])
# Assumed that there is one space btw each words
final.append(' ')
print(''.join(final))
For Test case pic,
您可以使用 count() 函数来计算特殊字符的重复次数
string_name.count('character')
对于计数 space 你应该 :
input_string = input()
splitter = input_string.split()
final = []
for i in range(0, len(splitter)):
for j in range(0, len(splitter[i])):
if(j==0):
final.append(splitter[i][j].upper())
else:
final.append(splitter[i][j])
final.append(' ')
count = input_string.count(' ')
print(''.join(final))
print (count)
祝你好运
忘记空格,它们不是你的问题。
您可以使用 split(None)
将字符串缩减为没有多余空格的单词,这将为您提供字数和字符串,即
>>> a = " hello world lol"
>>> b = a.split(None)
>>> len(b)
3
>>> print(" ".join(b))
hello world lol
编辑:在跟随你的link阅读实际问题后,下次在你的问题中包含相关细节,这样更容易全面,
您的问题仍然不是计算单词之前、之间或之后的空格数。已经提供了解决特定任务的答案,形式为:
>>> a= " hello world 42 lol"
>>> a.title()
' Hello World 42 Lol'
>>>
查看@Steven Summers 提供的答案
我建议针对教程问题做的是一个快速简单的解决方案。
s = input()
print(s.title())
str.title()
会将字符串中每个单词的首字母大写。
现在要回答计算空格的问题,您可以使用 str.count())
它将接受一个字符串和 return 它找到的出现次数。
s = 'Hello World'
s.count(' ')
还有其他各种方法,例如:
s = input()
print(len(s) - len(''.join(s.split())))
s2 = input()
print(len(s2) - len(s2.replace(' ', '')))
然而,计数是最容易实施和遵循的。
现在,如果您计算的是每个世界之间的空格数,则计数将 return 总数。
那么像这样就足够了
s = input()
spaces = []
counter = 0
for char in s:
if char== ' ':
counter += 1
elif counter != 0:
spaces.append(counter)
counter = 0
print(spaces)
您可以通过使用模式' '
(空格)拆分来修复它
splitter = input_string.split(' ')
你也可以使用 .capitalize() 方法而不是再次拆分令牌
s = "hello world 4lol"
a = s.split(' ')
new_string = ''
for i in range(0, len(a)) :
new_string = a[i].capitalize() if len(new_string)==0 else new_string +' '+ a[i].capitalize()
print(new_string)
输出:
Hello World 4lol
要计算两个单词之间的空格数,您可以使用python 的正则表达式模块。
import re
s = "hello world loL"
tokens = re.findall('\s+', s)
for i in range(0, len(tokens)) :
print(len(tokens[i]))
输出:
7
2
import re
line = "Hello World LoL"
total = 0
for spl in re.findall('\s+', line):
print len(spl)
total += len(spl) # 4, 2
print total # 6
>>> 4
>>> 2
>>> 6
我之前解决了那个问题,只需在拆分函数中添加“”(白色space),然后打印每个元素,用白色space分隔。就这些了。
for i in input().split(" "):
print(i.capitalize(), end=" ")
与"hello world lol"的split函数结果为
>>> "hello world lol".split(" ")
>>>['hello', '', '', '', 'world', '', '', '', 'lol']
然后打印每个元素+一个白色space.
对于你的空格问题
my_string = "hello world"
spaces = 0
for elem in my_string:
if elem == " ":
#space between quotes
spaces += 1
print(spaces)
接近
给定一个字符串,任务是计算字符串中单词之间的空格数。
示例:
Input: "my name is geeks for geeks"
Output: Spaces b/w "my" and "name": 1
Spaces b/w "name" and "is": 2
Spaces b/w "is" and "geeks": 1
Spaces b/w "geeks" and "for": 1
Spaces b/w "for" and "geeks": 1
Input: "heyall"
Output: No spaces
要执行的步骤
- 从用户输入字符串并剥离字符串以删除未使用的空格。
- 初始化一个空列表
- 运行 从 0 到字符串长度的 for 循环
- 在for循环中,存储所有不带空格的单词
- 再次在for循环中,用于存储单词的实际索引。
- for循环外,打印空格数b/w个字。
下面是上述方法的实现:
# Function to find spaces b/w each words
def Spaces(Test_string):
Test_list = [] # Empty list
# Remove all the spaces and append them in a list
for i in range(len(Test_string)):
if Test_string[i] != "":
Test_list.append(Test_string[i])
Test_list1=Test_list[:]
# Append the exact position of the words in a Test_String
for j in range(len(Test_list)):
Test_list[j] = Test_string.index(Test_list[j])
Test_string[j] = None
# Finally loop for printing the spaces b/w each words.
for i in range(len(Test_list)):
if i+1 < len(Test_list):
print(
f"Spaces b/w \"{Test_list1[i]}\" and \"{Test_list1[i+1]}\": {Test_list[i+1]-Test_list[i]}")
# Driver function
if __name__ == "__main__":
Test_string = input("Enter a String: ").strip() # Taking string as input
Test_string = Test_string.split(" ") # Create string into list
if len(Test_string)==1:
print("No Spaces")
else:
Spaces(Test_string) # Call function
我在 Hackerrank 上做 this 问题,我想到了这个想法,其中包括拆分输入并在之后加入它(请参阅下面的我的实现)。但是,其中一个测试用例包含输入 (hello< multiple spaces> world),这导致我的代码崩溃,因为输入字符串的每个单词之间有超过 1 个 space。所以,我只是想知道是否有人可以帮我修复我的代码,我只是想知道如何计算 [=31] 中的字符串中有多少 spaces(尤其是多个 spaces) =].我找到了如何在 Java 中计算 spaces,但在 Python 中找不到。对于测试用例,我附上了图片。
提前致谢。
我的实现:
input_string = input()
splitter = input_string.split()
final = []
for i in range(0,len(splitter)):
for j in range(0,len(splitter[i])):
if(j==0):
final.append(splitter[i][j].upper())
else:
final.append(splitter[i][j])
# Assumed that there is one space btw each words
final.append(' ')
print(''.join(final))
For Test case pic,
您可以使用 count() 函数来计算特殊字符的重复次数
string_name.count('character')
对于计数 space 你应该 :
input_string = input()
splitter = input_string.split()
final = []
for i in range(0, len(splitter)):
for j in range(0, len(splitter[i])):
if(j==0):
final.append(splitter[i][j].upper())
else:
final.append(splitter[i][j])
final.append(' ')
count = input_string.count(' ')
print(''.join(final))
print (count)
祝你好运
忘记空格,它们不是你的问题。
您可以使用 split(None)
将字符串缩减为没有多余空格的单词,这将为您提供字数和字符串,即
>>> a = " hello world lol"
>>> b = a.split(None)
>>> len(b)
3
>>> print(" ".join(b))
hello world lol
编辑:在跟随你的link阅读实际问题后,下次在你的问题中包含相关细节,这样更容易全面, 您的问题仍然不是计算单词之前、之间或之后的空格数。已经提供了解决特定任务的答案,形式为:
>>> a= " hello world 42 lol"
>>> a.title()
' Hello World 42 Lol'
>>>
查看@Steven Summers 提供的答案
我建议针对教程问题做的是一个快速简单的解决方案。
s = input()
print(s.title())
str.title()
会将字符串中每个单词的首字母大写。
现在要回答计算空格的问题,您可以使用 str.count())
它将接受一个字符串和 return 它找到的出现次数。
s = 'Hello World'
s.count(' ')
还有其他各种方法,例如:
s = input()
print(len(s) - len(''.join(s.split())))
s2 = input()
print(len(s2) - len(s2.replace(' ', '')))
然而,计数是最容易实施和遵循的。
现在,如果您计算的是每个世界之间的空格数,则计数将 return 总数。
那么像这样就足够了
s = input()
spaces = []
counter = 0
for char in s:
if char== ' ':
counter += 1
elif counter != 0:
spaces.append(counter)
counter = 0
print(spaces)
您可以通过使用模式' '
(空格)拆分来修复它
splitter = input_string.split(' ')
你也可以使用 .capitalize() 方法而不是再次拆分令牌
s = "hello world 4lol"
a = s.split(' ')
new_string = ''
for i in range(0, len(a)) :
new_string = a[i].capitalize() if len(new_string)==0 else new_string +' '+ a[i].capitalize()
print(new_string)
输出:
Hello World 4lol
要计算两个单词之间的空格数,您可以使用python 的正则表达式模块。
import re
s = "hello world loL"
tokens = re.findall('\s+', s)
for i in range(0, len(tokens)) :
print(len(tokens[i]))
输出:
7
2
import re
line = "Hello World LoL"
total = 0
for spl in re.findall('\s+', line):
print len(spl)
total += len(spl) # 4, 2
print total # 6
>>> 4
>>> 2
>>> 6
我之前解决了那个问题,只需在拆分函数中添加“”(白色space),然后打印每个元素,用白色space分隔。就这些了。
for i in input().split(" "):
print(i.capitalize(), end=" ")
与"hello world lol"的split函数结果为
>>> "hello world lol".split(" ")
>>>['hello', '', '', '', 'world', '', '', '', 'lol']
然后打印每个元素+一个白色space.
对于你的空格问题
my_string = "hello world"
spaces = 0
for elem in my_string:
if elem == " ":
#space between quotes
spaces += 1
print(spaces)
接近
给定一个字符串,任务是计算字符串中单词之间的空格数。
示例:
Input: "my name is geeks for geeks"
Output: Spaces b/w "my" and "name": 1
Spaces b/w "name" and "is": 2
Spaces b/w "is" and "geeks": 1
Spaces b/w "geeks" and "for": 1
Spaces b/w "for" and "geeks": 1
Input: "heyall"
Output: No spaces
要执行的步骤
- 从用户输入字符串并剥离字符串以删除未使用的空格。
- 初始化一个空列表
- 运行 从 0 到字符串长度的 for 循环
- 在for循环中,存储所有不带空格的单词
- 再次在for循环中,用于存储单词的实际索引。
- for循环外,打印空格数b/w个字。
下面是上述方法的实现:
# Function to find spaces b/w each words
def Spaces(Test_string):
Test_list = [] # Empty list
# Remove all the spaces and append them in a list
for i in range(len(Test_string)):
if Test_string[i] != "":
Test_list.append(Test_string[i])
Test_list1=Test_list[:]
# Append the exact position of the words in a Test_String
for j in range(len(Test_list)):
Test_list[j] = Test_string.index(Test_list[j])
Test_string[j] = None
# Finally loop for printing the spaces b/w each words.
for i in range(len(Test_list)):
if i+1 < len(Test_list):
print(
f"Spaces b/w \"{Test_list1[i]}\" and \"{Test_list1[i+1]}\": {Test_list[i+1]-Test_list[i]}")
# Driver function
if __name__ == "__main__":
Test_string = input("Enter a String: ").strip() # Taking string as input
Test_string = Test_string.split(" ") # Create string into list
if len(Test_string)==1:
print("No Spaces")
else:
Spaces(Test_string) # Call function