python小算法

1.长度为m的字符串a,长度为n的字符串b,(m>n) 判断b中的字母是否全在a中? O(n)最小.
class Num(object):

  def getNum(self, m):
    numList = filter(lambda x: not [x%i for i in range(2,x) if x%i==0], range(2,500))
    return numList[0:m]

  def getSizeDict(self, string):
    numList = self.getNum(len(string))
    strDict = {}
    for s in set(string):
      strDict[s] = numList[0]
      del numList[0]

    return strDict

  def getDiff(self, string, string2):
      j = 1
      flag = 1
      strDict = self.getSizeDict(string)
      numList =self.getNum(len(string))
      for i in numList:
        j*=i

      for s in string2:
        try:
          d = strDict[s]
        except:
          flag = 0
          break
      return flag

if __name__ == ‘__main__‘:
  string = raw_input(‘string:‘)    string2 = raw_input(‘another:‘)
  main = Num()
  num = main.getDiff(string,string2)
  print num == 1 and ‘yes‘ or ‘no‘

  

  

python小算法

时间: 2024-08-03 15:18:11

python小算法的相关文章

Python KNN算法

机器学习新手,接触的是<机器学习实战>这本书,感觉书中描述简单易懂,但对于python语言不熟悉的我,也有很大的空间.今天学习的是k-近邻算法. 1. 简述机器学习 在日常生活中,人们很难直接从原始数据本身获得所需信息.而机器学习就是把生活中无序的数据转换成有用的信息.例如,对于垃圾邮件的检测,侦测一个单词是否存在并没有多大的作用,然而当某几个特定单词同时出现时,再辅以考虑邮件的长度及其他因素,人们就可以更准确地判定该邮件是否为垃圾邮件. 机器学习分为监督学习和无监督学习,其中: (1)监督学

几个Python小案例,爱上Python编程!

Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?温馨提示:文末必看. 一.画爱心表白 1.图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以我们就可以建立模型,建立表达式expression,当满足时,两个for循环(for X in range:for Y in range)就会每行每列的打印. 2.Python代码与注释: 理清思路一行代

python kayb算法之从一组序列当中获取一组与目标值最接近的算法

python  kayb算法之从一组序列当中获取一组与目标值最接近的算法 思想:1.考虑所有序列当中的所有元素相遇的情况进行迭代2.在迭代过程当中维护一个与目标数值的最小差值3.在迭代完之后剩余的那一项 即为与目标值最接近的元素序列注意: 1.如果总和大于目标数需要判断此时大于目标数的和与前一个值总和哪个差值最小 2.考虑初始序列元素与目标值的最小差值 3.考虑序列当中所有元素的总和比目标值小问题: 1.是否有最小可以接受的范围 可以大大提高时间 1 # -*- coding:utf-8 -*-

python之算法

python之算法 这个合格程序员还是需要熟练掌握一些算法的,今天主要介绍一些排序算法 递归是算法中一个比较核心的概念,有三个特点, 1 调用自身 2 具有结束条件 3 代码规模逐渐减少 以下四个函数只有两个为递归 这里需要注意一些 fun3和fun4输出的结果是不一样的 fun3:5,4,3,2,1 fun4:1,2,3,4,5 也只有3和4是递归 两个概念:时间复杂度和空间复杂度 时间复杂度:用于体现算法执行时间的快慢,用O表示.一般常用的有:几次循环就为O(n几次方)  循环减半的O(lo

python常用算法了解

这里从个人角度,总结下python常用算法,不罗嗦,直接看代码(文字解释及推到过程网上有很多,大家可以通过度娘了解) 以下排名仅从写代码人自己习惯的顺序! NO.1 二分查找 import time # 时间装饰器 def cal_time(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() # print("%s r

这42个Python小例子,太走心~

告别枯燥,60秒学会一个Python小例子.奔着此出发点,我在过去1个月,将平时经常使用的代码段换为小例子,分享出来后受到大家的喜欢. 一.基本操作 . 1 链式比较 i = 3 print(1 < i < 3)  # False print(1 < i <= 3)  # True 2 不用else和if实现计算器 from operator import * def calculator(a, b, k):     return {         '+': add,      

python Dijkstra算法实现最短路径问题的方法

这篇文章主要介绍了python Dijkstra算法实现最短路径问题的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 从某源点到其余各顶点的最短路径 Dijkstra算法可用于求解图中某源点到其余各顶点的最短路径.假设G={V,{E}}是含有n个顶点的有向图,以该图中顶点v为源点,使用Dijkstra算法求顶点v到图中其余各顶点的最短路径的基本思想如下: 使用集合S记录已求得最短路径的终点K线图的跳空,初始时S={v}.

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

java每日小算法(4)

[程序4] 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. package test; import java.util.ArrayList;