算法

1.算法:解决问题的一系列步骤。

2.【FizzBuzz问题】编写一个程序,打印从1到100之间的数字,碰到3 的倍数,打印Fizz,碰到5的倍数,打印Buzz,如果是3和5共同的倍数,打印FizzBuzz。

def fizz_buzz():
for i in range(1,101):
if i%3==0 and i %5==0:
print("FizzBuzz")

elif i%3==0:
print("Fizz")

elif i%5==0:
print("Buzz")

else:
print(i)

fizz_buzz()
运行结果

3.搜索算法之顺序算法,首先将变量found设置为False,用来记录是否找到了目标数字,然后遍历列表中的每个数字,检查是否为目标数字

#Sequential Search
def ss(number_list,n):
found=False
for i in number_list:
if i ==n:
found==True
break
return found

numbers=range(0,100)
s1=ss(numbers,2)
print(s1)
s2=ss(numbers,202)
print(s2)
4.回文词:逆序和正序拼写得出的单词都是相同的词,写一个算法检查单词是否回文词,只需要将单词中所有的字符逆序,并检查逆序后的单词是否与原本的 单词相同即可实现。
def palindrome(word):
word=word.lower()
return word[::-1]==word

print(palindrome(("Mother")))
print(palindrome(("Mon")))

运行结果

 5.变位符:通过重新组合另一个单词的字母所组成的单词,iceman就是cinema的一个变位符,因此通过将两个单词的字母按照顺序进行排序,检查二者是否一致,就可以判断他们是否为变位符。

def anagram(w1,w2):
w1=w1.lower()
w2=w2.lower()
return sorted(w1)==sorted(w2)

print(anagram("iceman","cinema"))
print(anagram("leaf","tree"))
运行结果:

 6.计算字母频数。该算法将遍历字符串中的每个字符,用字典记录每个字母出现的次数次数。

def count_characters(string):
count_dict={}
for c in string:
if c in count_dict:
count_dict[c]+=1
else:
count_dict[c]=1
print(count_dict)

count_characters("Dynasty")
运行结果:

 7.递归recursion

这点笔者自己没掌握好,等自己理解掌握了,专门写出来





原文地址:https://www.cnblogs.com/JacquelineQA/p/12990217.html