零起点学算法101——统计字母数字等个数 
时间: 2023-04-26 08:03:20 浏览: 32
这道题的思路比较简单,我们只需要遍历字符串,然后统计其中字母、数字、空格和其他字符的个数即可。
具体实现可以使用一个计数器数组,分别记录字母、数字、空格和其他字符的个数。然后遍历字符串,对于每个字符,判断它属于哪一类,然后将对应的计数器加一即可。
最后输出各个计数器的值即可得到结果。
相关问题
problem g: 零起点学算法106——首字母变大写
### 回答1:
这道题目要求我们将字符串中每个单词的首字母变成大写。我们可以先将字符串按照空格分割成单词,然后对每个单词进行处理。处理的方法是将单词的第一个字符转换成大写,然后再将剩余的字符拼接起来。最后将处理后的单词再拼接成一个字符串即可。
### 回答2:
题目要求编写一个程序,将给定字符串的每个单词的首字母变为大写。
首先,我们可以使用`split()`方法将字符串分割成单词的列表。然后,遍历每个单词,将首字母转化成大写。最后,使用`join()`方法将单词列表重新连接成字符串,得到结果。
以下是一个可能的实现:
```python
def capitalize_first_letter(sentence):
words = sentence.split() # 将字符串分割成单词列表
result = []
for word in words:
capitalized_word = word[0].upper() + word[1:] # 将首字母变为大写
result.append(capitalized_word)
return ' '.join(result) # 将单词列表重新连接成字符串
# 测试示例
print(capitalize_first_letter('hello world')) # 输出: Hello World
print(capitalize_first_letter('zero starting point')) # 输出: Zero Starting Point
```
以上代码中,`capitalize_first_letter`函数接收一个字符串作为参数,并返回首字母变为大写的结果字符串。我们将字符串使用`split()`方法分割成单词列表,然后遍历每个单词,将首字母转化成大写。最后,使用`join()`方法将单词列表重新连接成字符串,并返回结果。
通过上述实现,我们可以满足题目要求,将给定字符串的每个单词的首字母变为大写。
### 回答3:
问题g:零起点学算法106——首字母变大写
这个问题要求我们将给定字符串中每个单词的首字母变为大写。解决这个问题的方法有很多种,下面我将提供两种方法。
方法一:使用内置函数capitalize()
我们可以使用内置函数capitalize()来将字符串的首字母变为大写。首先,我们将给定的字符串按照空格分割成单词列表。然后,对于每个单词,我们使用capitalize()函数将其首字母变为大写,并将其添加到结果列表中。最后,我们将结果列表连接成一个字符串,并返回这个结果字符串作为答案。
def capitalize_words(sentence):
words = sentence.split()
capitalized_words = [word.capitalize() for word in words]
return ' '.join(capitalized_words)
方法二:逐个字符遍历
我们也可以逐个字符遍历给定字符串,当遇到空格时,将下一个字符变为大写。为了解决字符串首字母的问题,我们可以在遍历前在字符串的首部添加一个空格。
def capitalize_words(sentence):
sentence = ' ' + sentence
n = len(sentence)
result = ''
for i in range(1, n):
if sentence[i - 1] == ' ':
result += sentence[i].upper()
else:
result += sentence[i]
return result
这两种方法都可以解决问题g中的要求,使用内置函数capitalize()的方法较为简单和直观,但如果想要了解更多底层的实现细节,逐个字符遍历的方法也是一种不错的选择。
零起点学算法85——数组中插入一个数
题目描述:
给定一个有序数组和一个数,将这个数插入到数组中,并保证数组仍然有序。
输入格式:
第一行输入一个整数 n,表示数组的长度。
第二行输入 n 个整数,表示给定的有序数组。
第三行输入一个整数 x,表示要插入的数。
输出格式:
输出 n+1 个整数,表示插入新数后的数组。
输入样例:
5
1 3 4 6 8
5
输出样例:
1 3 4 5 6 8
算法1
(暴力枚举) $O(n)$
直接从头到尾遍历数组,找到第一个大于等于插入数的位置,然后将插入数插入到该位置。
时间复杂度
遍历一次数组,时间复杂度为 $O(n)$。
C++ 代码
算法2
(二分查找) $O(logn)$
由于数组是有序的,可以使用二分查找找到第一个大于等于插入数的位置,然后将插入数插入到该位置。
时间复杂度
二分查找的时间复杂度为 $O(logn)$。
C++ 代码
相关推荐










