1.获取实现两个字符串中最大的公共子串

思路:

    1.比较两个字符串的长度

  2.获取较短字符串的所有子串

  3.使用__contains__函数进行比较

  4.把子串当做键,子串长度作为值,存入字典,通过值,反过来取出所有这个长度的值,做到同样长度下多个值得情况

# coding=utf-8
str1 = "abcdef"
str2 = "efdrabcefghdef"
max_str = ""
min_str = ""
list1 = [] def list_str(max_str, min_str): # 2.获取较短字符串的所有子串
count = 0
n= len(min_str)
while count < n:
for i in range(n):
list1.append(min_str[count:i + 1])
count += 1 # 3.判断较长字符串是否含有子串
def end():
dict1 = {}
for i in list1:
if max_str.__contains__(i):
dict1[i] = len(i) # 把值当做键,把长度作为值
value1= max(dict1.values())
for key,value in dict1.items(): # 通过遍历,找到所有这个长度的值
if value== value1:
print(key) # 1.首先判断两字符串长度
def start(str1, str2):
global max_str, min_str
max_str, min_str = str1, str2
if len(max_str) < len(min_str):
max_str, min_str = str2, str1
list_str(max_str, min_str) # 2.获取子串
list_str(max_str, min_str)
end() # 3,判断 if __name__ == '__main__':
start(str1, str2) # 0.开始比较长度

2.给定几个字符串,输入一个字符,如果第一个字符相同,再输入第二个,同样情况,继续输入,直到找到唯一的字符串

  思路

  1.把给出的字符串放入一个列表中

  2.输入字符,遍历列表,使用startswith()方法

  3.将比较的结果进行判断

  4.回调

# coding=utf-8

list1 = []
str1 = "Mon"
str2 = "Mabc"
str3 = "Mongddd"
list1.append(str1)
list1.append(str2)
list1.append(str3)
last = "" # 存储最后要输出的字符串
count = 0 # 用来标识是否有以输入字符开头的字符串
str_input = "" # 存储输入的字符串 def compare(input_str):
global count, last
count = 0
for i in list1:
if i.startswith(input_str):
count += 1
last = i def back():
global str_input
if count == 1: # 如果是1,说明只有1个字符串有,则输出
print(last)
elif count >= 2: # 如果没有,则继续输入,并且拼接上前面输入的字符串
input_str = input("请继续输入字母")
str_input = str_input + input_str
compare(str_input) # 重新调用比较
back() #回调本身,进行验证 if __name__ == '__main__':
input_str = input("输入一个字母")
str_input = input_str
input_str = 'M'
compare(input_str) # 调用比较是否有哪个字符串以这个字符开头
back()

3.给定一个字符串,根据字符出现的频度排序,例如"abcc",排序后的结果为"ccba"或者"ccab"

  思路

  1.把所有字符串转换成列表

  2.使用max(set(list1),key=list1.count)方法求出列表中出现频度最大的字符串

  3.请求出现的次数,并在列表中移除这个元素

  4.根据列表的长度进行回调

# coding=utf-8
str1 = "abcc"
list1 = list(str1)
last_str = "" # 最终输出的字符串 def max_count_str(list_temp): # 判断出现频度最大的字符串
return max(set(list_temp), key=list_temp.count) def count_judge(str_temp): # 请求出现的频度,并在列表中去除这个元素
count = 0
while True:
if str_temp in list1:
list1.remove(str_temp)
count += 1
else:
break
return count def start():
global last_str
str_temp = max_count_str(list1) # 请出出现频度最大的字符
count = count_judge(str_temp) # 请求出现的频度,并在列表中去除这个元素
last_str = last_str + str_temp * count # 进行字符串拼接
if len(list1) > 0:
start() # 如果列表中还有元素,回调,继续比较 if __name__ == '__main__':
start()
print(last_str)

Python中常见的字符串小笔试题的更多相关文章

  1. Python中常见字符串去除空格的方法总结

    Python中常见字符串去除空格的方法总结 1:strip()方法,去除字符串开头或者结尾的空格>>> a = " a b c ">>> a.s ...

  2. Python 最常见的 170 道面试题解析:2019 最新

    Python 最常见的 170 道面试题解析:2019 最新 2019年06月03日 23:30:10 GitChat的博客 阅读数 21329 文章标签: PythonPython入门Python面 ...

  3. Python 最常见的 170 道面试题全解析:2019 版

    Python 最常见的 170 道面试题全解析:2019 版 引言 最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了 ...

  4. JavaScript中常见的字符串操作函数及用法

    JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...

  5. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

  6. Python中一些有用的小命令

    1. 查看所有的关键字:help("keywords") 2.查看python所有的modules:help("modules") 3.单看python所有的m ...

  7. python中常见的报错信息

    python中常见的报错信息 在运行程序时常会遇到报错提示,报错的信息会提示是哪个方向错的,从而帮助你定位问题: 搜集了一些python最重要的内建异常类名: AttributeError:属性错误, ...

  8. Python中常见的报错名称

    Python中常见的报错名称 1.SyntaxError 语法错误.看看是否用Python关键字命名变量,有没有使用中文符号,运算符.逻辑运算符等符号是不是使用不规范. 2.IndentationEr ...

  9. Python 中的反转字符串:reversed()、切片等

    摘要:以相反的顺序反转和处理字符串可能是编程中的一项常见任务.Python 提供了一组工具和技术,可以帮助您快速有效地执行字符串反转. 本文分享自华为云社区<Python 中的反转字符串:rev ...

随机推荐

  1. ABAP--如何创建自定义打印条码

    ABAP--如何创建自定义打印条码 BARCODE in Smartforms: How to create customize BARCODE for Smartforms. 1 Introduct ...

  2. 【转】【Python】装饰器

    1.闭包 >>> def outer(): ... x = 1 ... def inner(): ... ... return inner >>> foo = ou ...

  3. SSH-运行main函数,一直报空指针,调依赖注入配置的dao

    解决this.getHibernateTemplate()==null的问题 刚刚在整合SSH时碰到了这样一个问题: 当我用junit测试时不会报任何异常,数据也都能得到 但当我运行man函数,直接n ...

  4. 今日Q群:QQ群众群友反馈问题的归纳总结

    今日Q群:QQ群群友反馈问题的归纳总结     今天Q群里还算比较活跃,归纳总结后主要有以下几类问题: 一.如何在Excel中按指定规则对有颜色的单元格进行过滤删选 具体的解决办法,请参照今天发布微信 ...

  5. C# 符合备忘录

    ~ 按位求补符:! 非逻辑运算符:% 求余运算符:^ 异或位运算符:& 且位运算符:|  或位运算符:* 既可以用作乘法符号,还可以表示为指针:+ 表示数学运算符相加:= 用来表示赋值操作:\ ...

  6. Java并发笔记-未完待续待详解

    为什么需要并行? – 业务要求 – 性能 并行计算还出于业务模型的需要 – 并不是为了提高系统性能,而是确实在业务上需要多个执行单元. – 比如HTTP服务器,为每一个Socket连接新建一个处理线程 ...

  7. 成都传智播客java就业班(14.04.01班)就业快报(Java程序猿薪资一目了然)

    这是成都传智播客Java就业班的就业情况,很多其它详情请见成都传智播客官网:http://cd.itcast.cn?140812ls 姓名 入职公司 入职薪资(¥) 方同学 安**软件成都有限公司(J ...

  8. MVC2 ,MVC3 ,MVC4,MVC5的区别,EF的各个版本的区别;LocalDB是个啥

    2010年發行ASP.NET MVC 2.0版,2011年發行ASP.NET MVC 3.0版,2012年發行ASP.NET MVC 4.0版 MVC3 需要.net framework 4.0 版本 ...

  9. RNAcentral 数据库简介

    RNAcentral 是EBI 开发的一个非编码RNA的数据库. 网址如下: http://rnacentral.org/ RNAcentral 整合了包括 Ensembl, GENCODE,Gree ...

  10. Zero-Copy实现原理

    参考文章 Nio Is Real 'Zero-Copy'?:https://dongc.github.io/2015/12/09/717/ 参考文章:Linux I/O (二):A Process O ...