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. 关于Unity中3D声音的使用

    3D声音 3D立体声和2D声不同的地方是它是会随着距离衰减的,距离越近声音越大,距离越远声音越小. 1: 声音: 背景音乐和音效; 2: 声音文件支持的格式: ogg, mp3, wave, AIFF ...

  2. Opencv-Python:图像尺寸、图像的读取、显示、保存与复制

    Opencv-Python:图像尺寸.图像的读取.显示.保存与复制 原创 2017年11月23日 21:30:49 4440 在使用opencv的方法时,首先必须导入opencv包.新的opencv导 ...

  3. Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat 解决办法

    问题描述 安装 Python的MySQL驱动时时出现这个错误: Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat 环境 ...

  4. c++ const 用法总结

    最近第二次学习c++ , 却总是忘记const的一些用法, 所以记录一下笔记 忒困! A: const指针位于 * 的左边 A : const 修饰指针指向的内容, 则内容为不可变量但指针可变: 称其 ...

  5. selenium操作浏览器-窗口切换

    package seleniumLearn1; import java.util.Set; import java.util.concurrent.TimeUnit; import org.openq ...

  6. qualcomm compile instructions

    qualcomm编译指令 Compile the Entire Android Software source build/envsetup.sh lunch msm8909-userdebug ma ...

  7. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.【转】

    今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者 如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" ...

  8. c#中//注释和///注释的区别 智能注释 显示换行

    ///会被编译,//不会所以使用///会减慢编译的速度(但不会影响执行速度)///会在其它的人调用你的代码时提供智能感知 也是一种注释,但是这种注释主要有两种作用:1.这些注释能够生成一个XML文件. ...

  9. u3d DontDestroyOnLoad多场景问题

    using UnityEngine; using System.Collections; public class DontDel : MonoBehaviour { public GameObjec ...

  10. Java多线程——Lock&Condition

    Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象.两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象. package ...