在面对算法,小菜都会摸不到头脑。学了那么多基础知识,连一个算法题都做不出来,甚至会怀疑是不是学到的知识都是水货呀。
在前一节,遇到的第一个小题就像是在把一个大饼不断地二等分掰开,掰到连渣都不剩。
① 替换空格
题目:将一个字符串中的空格替换成“%20”
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
最简单能实现的地方法就是,字符串的 replace 替换方法。
Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
class Solution:
# words 源字符串
def replace_space(self, words):
return words.replace(' ','%20')
② 数组中重复的数字
题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组(2,3,1,0,2,5,3),那么对应的输出是第一个重复的数字2。
class Solution:
# 这里要特别注意~找到任意重复的一个值并赋值到duplication[0]
# 函数返回True/False
def duplicate(self, numbers, duplication):
# write code here
if not numbers:
return False
length = len(numbers)
assist = [0] * length
print(assist)
for i in numbers:
if assist[numbers[i]] == 0:
assist[numbers[i]] += 1
else:
duplication[0] = numbers[i]
print(duplication)
return True
return False