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

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





  • 相关阅读:
    使用sequelize-auto生成sequelize的Models
    table中td内容过长自动换行
    编写一个方法,去掉数组的重复元素
    call, apply的用法意义以及区别是什么
    在javascript中使用媒体查询media query
    总结的一些封装好的javascript函数
    只对safari起作用的css hack
    javascrip实现无缝滚动
    Ensures there will be no 'console is undefined' errors
    jQuery.isEmptyObject()函数用于判断指定参数是否是一个空对象。
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/12990217.html
Copyright © 2011-2022 走看看