给定的字符串中只包含#和小写字母,其中#是分隔符,连续的小写字母构成单词。单词内部不会包含#号,也不存在两个单词之间没有#的情况。请你写一个程序来统计一下一行字符串中单词的数量和#的数量。 输入格式: 第一行为一个整数n(0<n<10),代表共有n个字符串。后边n行,每行一个长度不超过100的字符串。 测试用例保证输入合法。 输出格式: 共n行,每行依次对应输入各个字符串。 每行的格式如下: 首先是一个整数,代表单词的数量,跟着是一个空格;然后又是一个整数,代表#的数量,跟着又是一个空格;最后依
时间: 2023-11-22 09:56:54 浏览: 265
此题可以使用split函数将字符串按照#号分隔成单词,然后统计单词数量和#号数量即可。下面是Python的代码实现:
```python
n = int(input())
for i in range(n):
s = input()
words = s.split('#')
word_count = len(words)
sharp_count = s.count('#')
print(word_count, sharp_count, end=' ')
```
需要注意的是,最后一组单词后面可能没有#号,所以实际上#号的数量等于单词数量减1。可以通过字符串的count函数来统计#号的数量。输出时需要用end参数指定输出空格而不是换行。
相关问题
python给定一个由英文字符、数字、空格和英文标点符号组成的字符串,长度不超过5000,请将其切分为单词,要求去掉所有的非英文字母,然后将单词全部转换成小写,然后统计每一个词出现的次数,输出频次最高的那个词以及它出现的次数。如果有多个词的频次相同,则输出按字典序排列在最前面的那个。 例如给定字符串:String input = “1 fish 2 fish red fish blue fish”; 频次最高的单词是fish,它出现了4次。 再比如给定字符串:If the digit is less than 10, then ‘0’ + digit is returned. Otherwise, the value ‘a’ + digit - 10 is returned. 频次最高的单词是digit和is,都出现了3次。但是digit的字典序在is前面,所以应该输出digit和3。 格式 输入格式 一个长度不超过2000的字符串,只有末尾有回车符。 输出格式 输出一行,首先是频次最高的那个单词,然后是它出现的次数,中间用空格分隔
以下是Python实现代码:
```python
input_str = input().strip()
# 去掉非英文字母
words = [w.lower() for w in input_str if w.isalpha() or w.isspace()]
# 将字符串转换为单词列表
words = ''.join(words).split()
# 统计每个单词出现的频次
word_count = {}
for w in words:
if w in word_count:
word_count[w] += 1
else:
word_count[w] = 1
# 找到出现频次最高的单词
max_count = 0
max_word = ''
for w, count in word_count.items():
if count > max_count or (count == max_count and w < max_word):
max_count = count
max_word = w
# 输出结果
print(max_word, max_count)
```
输入示例:
```
1 fish 2 fish red fish blue fish
```
输出示例:
```
fish 4
```
给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 : * 如果单词的长度为 1 或者 2 ,所有字母变成小写。 * 否则,将单词首字母大写,剩余字母变成小写。 请你返回 大写后 的 title
对于给定的字符串 `title`,你可以按照特定的规则将其转换为每个单词首字母大写的格式。这里是一个简单的步骤描述:
1. 遍历字符串 `title` 的每一个字符,以空格作为分隔符分割成单词列表。
2. 对于每个单词,检查其长度:
- 如果长度为1或2,直接将整个单词转换为小写。
- 否则(即长度大于2),将第一个字符(首字母)转换为大写,其余字符转换为小写。
3. 将处理后的单词重新组合回字符串,通常使用空格连接。
下面是一个Python示例:
```python
def capitalize_title(title):
words = title.split(' ')
capitalized_words = [word[0].upper() + word[1:].lower() if len(word) > 2 else word.lower() for word in words]
return ' '.join(capitalized_words)
# 示例
input_title = "hello world this is a test"
output_title = capitalize_title(input_title)
print(output_title) # 输出 "Hello World This Is A Test"
```
阅读全文