python 算法解析 以及常见面试题

冒泡

def bubblesort(nums):
for i in range(len(nums)-1):
print(i)
for j in range(len(nums)-1-i):
print(j)
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
return nums

nums=[1,5,2,3]

print(bubblesort(nums))

1.i 循环是确认总的循环次数
2.j 循环是确认在进行i循环的时候,每一次的下标对比次数,例如,第一次i 循环,for j in range(0,3). 0:1 1:2 2:3 对比三次









-------------------------------------

字符串切片

# 字符串切片,取a中的abcd
a = "apbocidu"
1.
b=a[::2]

print(b)

a = "apbocidu"

2.
a = "apbocidu"

c=[]
for i in range(len(a)):
if i % 2 ==0:
c.append(a[i])

print(''.join(c))


方法二,1.循环a 对应的下标,取偶数的下标,然后c.append。加入他对应下标的值
然后再把列表join为一个字符串

字符串切割
# 字符串切割,"hello_world_hehe"转换成"hello","world","hehe"
a = "hello_world_hehe"

print(a.split("_"))


# 字符串合并,["a","b","c","d"]合并成"abcd"
a = ['a', 'b', 'c', 'd']
b = "".join(a)      # join连接字符串
print(b)

列表生成式
a=[x*x for x in range(5)]

print(a)


斐波那契数列(递归)

a=0
b=1
l=[]
while b <100:
l.append(b)
a,b=b,a+b
print(l)


猜你喜欢

转载自www.cnblogs.com/zhouzhipen/p/11892071.html