zoukankan      html  css  js  c++  java
  • 《Craking the Coding interview》python实现---01

    ###题目:给定一个字符串,判断其中是否有重复字母
    ###思路:将重复的字符放入到list中,并进行计数统计
    ###实现:伪代码、函数、类实现

    ###伪代码:
    string=s #给定的字符串
    list=[] #放入重复的字符
    dict={} #重复的字符进行统计

    #判断字符串是否为空,逻辑实现
    if str !=None:
    for i in s:
    if list !=None:
    if i in list:
    if i in dict.keys():
    dict[i]+=1
    else:
    dict[i]=1
    else:
    list.append(i)
    else:
    list.append(i)
    else:
    print('输入的字符串为空!')

    ###python函数实现:

    def judge_str(str):
             str_list=[]
             str_repet={}
             if str !=None:
                      for i in str:
                               if not list is None:
                                        if i in str_list:
                                                 if i  in str_repet.keys():
                                                          str_repet[i]+=1
                                                 else:
                                                          str_repet[i]=1
                                        else:
                                                 str_list.append(i)
                               else:
                                        str_list.append(i)
                      print('该字符串中有%s个字符有重复'%len(str_repet.keys()))
                      for  key,value in str_repet.items():
                               print('重复的字符为【%s】,共重复了%s次'%(key,value))
             else:
                      print('输入的字符串是空!')
    

    ###python类的实现:

    from  functools import wraps
    import time
    def decorator(func):
             @wraps(func)
             def wrappres(*args,**kwargs):
                      start=time.time()
                      func(*args,**kwargs)
                      end=time.time()
                      usetime=end-start
                      print('查找共花费{:.2f}秒'.format(usetime))
             return wrappres
    class JudgeStr:
             def __init__(self,string):
                      self.str_tuple=()
                      self.str_repet={}
                      self.string=string
                      self.str=self._filter_handler()
                      
             def  _judge_handler(self):
                      for i in self.str:
                               if self.str_list !=None:
                                        if i in self.str_list:
                                                 if i  in self.str_repet.keys():
                                                          self.str_repet[i]+=1
                                                 else:
                                                          self.str_repet[i]=1
                                        else:
                                                 self.str_list.append(i)
                               else:
                                        self.str_list.append(i)
    
             def  _filter_handler(self):
                      if  self.string !=None:
                               if type(self.string) ==str:      
                                        return self.string
                               else:
                                        raise ValueError('请传入字符串参数')
                      else:
                               raise TypeError('参数为空')
             @decorator
             def result_handler(self):
                      self._judge_handler()
                      print('该字符串中有%s个字符有重复'%len(self.str_repet.keys()))
                      for  key,value in self.str_repet.items():
                               print('重复的字符为【%s】,共重复了%s次'%(key,value))



  • 相关阅读:
    京东二面面经(07.17 11:30)
    招银三面手撕代码题(字符串连续子串)
    shein二面(31min)
    京东提前批一面
    两个链表的第一个公共结点
    Java并发机制的底层实现原理
    招银网络(二面07.09)
    黑盒测试与白盒测试
    求1+2+...+n(剑指offer-47)
    第一个只出现一次的字符(剑指offer-34)
  • 原文地址:https://www.cnblogs.com/jack-z/p/10446562.html
Copyright © 2011-2022 走看看