zoukankan      html  css  js  c++  java
  • 寻找最小term,自制面试题

    #!/usr/bin/env python
    #encoding=utf-8
    def unicode2str(input_str):
      """
      将unicode类型转换为str类型
      """
      if type(input_str)==type(u""):
        return input_str.encode("utf-8","ignore")
      return input_str

    def str2unicode(str):
      """
      将str类型转换为unicode类型
      """
      if type(str)==type(u""):
        return str
      if type(str)==type(""):
        return str.decode("utf-8","ignore")
    a=["AC|||B","ABE|||ACFD","AB|||AC","ABD|||ACD"]

       
    def do(a):
        def cmp(x,y):
            if x.__len__()<y.__len__():
                return -1
            elif x.__len__()==y.__len__():
                return 0
            else:
                return 1

        a.sort(cmp)
        print a
       
        abandom=set()

        def _(a,b):
            #a,b need unicode
            #global abandom
            aa=str2unicode(a)
            bb=str2unicode(b)
            r=bb.__len__()-aa.__len__()
            print aa,bb
            if r>0 and r%2==0:
                laa,raa=aa.split("|||")
                lbb,rbb=bb.split("|||")
                if (laa in lbb) and (raa in rbb):
                    print "===>",aa,bb
                    idx=-1
                    for time in range(0,lbb.count(laa)):
                        idx=lbb.find(laa,idx+1)
                        print lbb[:idx]+lbb[idx+len(laa):]
                        if lbb[:idx]+lbb[idx+len(laa):]==rbb[:idx]+rbb[idx+len(raa):]:
                            abandom.add(b)
            return a

        if a.__len__<=1:
            return abandom
        for idx,elem in enumerate(a):
            if idx==(len(a)-1):break
            reduce(_,a[idx+1:],a[idx])
        return abandom

    print do(a)

  • 相关阅读:
    shell编程——循环执行
    ubuntu 设置管理 集锦
    27. 计算FPS
    29 GameProject4(+GUI)
    26. D3D显示文本
    30. D3D特效
    28. GUI
    32. 细节映射
    25. GameProject3
    Direct3D渲染到纹理 (部分转)
  • 原文地址:https://www.cnblogs.com/lexus/p/2796087.html
Copyright © 2011-2022 走看看