写一个程序读入一条句子中的所有单词,显示如下指定长度的单词的数目: (a) 1 (b) 2 to 5 (c) 6 to 10 (d) 11 to 20 (e) 大于等于21 假定句子以换行结束,单词间用空格分隔,并且每个单词长度不超过25个字符。
时间: 2023-05-31 22:19:37 浏览: 229
### 回答1:
这句话要求你编写一个程序,读入一条句子中的所有单词,显示如下指定长度范围的单词的数量:(a) 1 (b) 2到5 (c) 6到10 (d) 11到20 (e) 大于等于21。假定句子以句点结束,单词之间用空格分隔,每个单词的长度不超过25个字符。
### 回答2:
本题要求我们编写一个程序,能够读入一条由单词组成的句子,并能够统计出不同长度范围内的单词个数。我们可以按照以下步骤来实现:
首先需要定义一个长度为25的字符串数组,用于暂存每个单词。设置5个变量,分别用于记录1个字母、2-5个字母、6-10个字母、11-20个字母和大于等于21个字母的单词数目。
然后,程序需要使用循环方式读入用户输入的句子。按照空格作为分隔符将句子转换为若干个单词,并按单词长度进行分类。如果该单词符合某个分类,则将对应的变量加1。
最后,输出各个长度范围的单词个数即可。
参考代码如下:
```python
# 定义用于暂存单词的字符串数组
word = [""] * 25
# 初始化变量,表示不同长度范围内的单词个数
n1, n2_5, n6_10, n11_20, n21 = 0, 0, 0, 0, 0
# 读入句子,并进行单词长度分类
sentence = input()
for c in sentence:
if c == ' ' or c == '\n':
l = len(word)
if l == 1:
n1 += 1
elif l >= 2 and l <= 5:
n2_5 += 1
elif l >= 6 and l <= 10:
n6_10 += 1
elif l >= 11 and l <= 20:
n11_20 += 1
elif l >= 21:
n21 += 1
word = [""] * 25 # 清空字符串数组,准备读入下一个单词
else:
word[len(word)-1] = c + word[len(word)-1] # 将字符加入字符串数组中
# 输出各个长度范围的单词个数
print("(a) 1:", n1)
print("(b) 2 to 5:", n2_5)
print("(c) 6 to 10:", n6_10)
print("(d) 11 to 20:", n11_20)
print("(e) greater than or equal to 21:", n21)
```
本程序的时间复杂度为O(n),因为只需要遍历输入的句子一次即可。由于每个单词的长度不超过25个字符,因此每个单词的分类操作都可以在O(1)的时间内完成。因此程序的效率较高,能够满足一般的需求。
### 回答3:
这道题需要读入一条句子中的所有单词,并且统计出指定长度范围内的单词的数量。我们可以使用Python语言来解决这个问题。
首先,我们需要读入一条句子。可以使用input函数来读取用户输入。代码如下:
```
sentence = input("请输入句子:")
```
接下来,我们需要把句子中的所有单词提取出来。可以使用字符串的split函数来分割单词。代码如下:
```
words = sentence.split()
```
现在,我们得到了一个包含所有单词的列表words。接下来,我们需要遍历这个列表,并统计指定长度范围内的单词的数量。可以使用一个字典来存储每个长度范围内的单词数量。代码如下:
```
word_count = {
'1': 0,
'2-5': 0,
'6-10': 0,
'11-20': 0,
'>=21': 0
}
for word in words:
length = len(word)
if length == 1:
word_count['1'] += 1
elif 2 <= length <= 5:
word_count['2-5'] += 1
elif 6 <= length <= 10:
word_count['6-10'] += 1
elif 11 <= length <= 20:
word_count['11-20'] += 1
else:
word_count['>=21'] += 1
```
最后,我们可以输出每个长度范围内的单词数量。代码如下:
```
print("长度为1的单词数量为:", word_count['1'])
print("长度在2-5之间的单词数量为:", word_count['2-5'])
print("长度在6-10之间的单词数量为:", word_count['6-10'])
print("长度在11-20之间的单词数量为:", word_count['11-20'])
print("长度大于等于21的单词数量为:", word_count['>=21'])
```
这样,我们就完成了这道题的Python实现。完整代码如下:
阅读全文