zoukankan      html  css  js  c++  java
  • 算法

    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

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





  • 相关阅读:
    CentOS 7.0关闭默认防火墙启用iptables防火墙
    Linux下安装jdk1.8
    Linux下的tar压缩解压缩命令详解
    centos7上安装redis
    通过克隆虚拟机来创建多个虚拟机
    深度学习的网络资料
    在ubuntu中添加widows启动项的简单方法
    循环神经网络RNN的基本介绍
    统计学习——随机过程
    spark机制理解(一)
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/12990217.html
Copyright © 2011-2022 走看看