1. 打印1000以内的质数

draft版本:

def printlist():
    a = []
for i in range(1, 1001):
b.append(i)
for j in range(2, i):
if i % j == 0:
a.remove(i)
break
print(a)
checklist()
稍稍优化一下,把判断是否质数方法独立出来,使用filter或者列表生成器来返回列表
def check(a):
  for i in range(2, a):
        if a % i == 0:
return 0
return 1
b = list(filter(lambda x:check(x), range(1, 1001)))
c = [x for x in range(1, 1001) if check(x)]
print(b)
print(c)

2. 给定字符串str1和str2,求str1中子串含有str2所有字符串的最小子串长度,若str1不包含所有str2中字符,则返回0,例如str1='abcdeca',str2='ac',则输出3
实现思路:使用字符串的find方法,当字符存在时返回第一次出现的位置,不存在时返回-1。
首先把str2转换成列表,遍历该列表,所有字符在str1中的位置生成新的列表,列表最大值即为符合条件的最小子串长度。
写法一:
def minlength(str1, str2):
    lista = list(str2)
listb = []
for item in lista:
x = str1.find(item)+1
if x:
listb.append(x)
else:
return 0
print(max(listb))
minlength('abcdeca', 'ac')

写法二:列表生成器生成新列表
def minlength(str1, str2):
    lista = list(str2)
listb = [str1.find(x)+1 for x in lista]
if listb.count(0) > 0:
return 0
else:
print(max(listb))
minlength('abcdeca', 'ac')


3. 统计一个字符串中的词频,按照词频逆序输出
实现思路一:生成集合,然后对集合元素用在原始字符串中的个数倒序排序,使用sorted()方法对集合排序
def reverselist(a):
    b = set(a)
c = sorted(b, key=lambda x: a.count(x), reverse=True)
print(" ".join(c))
reverselist('aabcddeeab')

实现思路二:使用collection模块的Counter方法,生成字符串中字符与字符个数的字典,key生成列表,对列表用value值排序
def reverselist(a):
dicta = dict(Counter(a))
b = [x for x in dicta]
b.sort(key=lambda x: dicta[x], reverse=True)
print(" ".join(b))
reverselist('aabcddeeab')


4. 存在某商品的价格列表,列表中是商品每天的价格,要在某一天买入,之后的某一天卖出获得利润,如果没有利润,则返回0
方法一:嵌套循环实现,第一层是买入的价格,第二层是列表该价格之后的价格遍历,计算出每个价格与买入价格的差值,如果大于利润值p,就更新p值
def profit(a):
    p = 0
if len(a) < 2:
return 0
for i in a[:-1]:
for j in a[a.index(i)+1:]:
p1 = j-i
if p1 > p:
p1, p = p, p1
if p >0:
return p
else:
return 0
a = profit([5, 5, 2])
print(a)

方法二:截取买入值后的值的子列表,找到最大值,然后把买入值与最大值计算利润,如果大于p就更新p值
def profit1(a):
    p = 0
if len(a) < 2:
return 0
for i in a[:-1]:
a1 = a[a.index(i)+1:]
j = max(a1)
p1 = j-i
if p1 > p:
p1, p = p, p1
if p > 0:
return p
else:
return 0
a = profit1([5, 1, 2])
print(a)

说明,遍历列表中的价格时,由于最后一个价格买入时,没有卖出价格,所以列表最后一个值不用遍历。
在第二种写法中,必须遍历a[:-1],否则生成子列表的时候会生成空列表,max()取最大值时会报错,

5. 判断字符串中有没有重复值
解决思路:把字符串转换成集合,然后判断字符串与集合的长度是否相等,由于集合中无重复元素,当长度相等时字符串中也无重复字符,反之则有重复字符
def checkdup(a):
    b = set(a)
if len(b) == len(a):
print("无重复字符")
else:
print("有重复字符")
checkdup('aac')



python-最近面试遇到的代码题,mark一下的更多相关文章

  1. Java面试手写代码题

    1.栈实现 2.Iterator实现 3.单例 4.多线和控制(暂停,恢复,停止) 5.生产者消费者

  2. python面试_总结02_代码题

    - 代码题 1.创建一个函数,接收一个字符串参数,判断其做为Python标识符是否合法. 具体要求: 如果合法则输出 True,否则输出 False. 如果该字符串与Python内置的关键字,或Bif ...

  3. 各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。

    Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途 ...

  4. 2019前端面试系列——JS高频手写代码题

    实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

  5. 记搜狗一次不成功的Python后端面试经历

    面试搜狗Python后端结束快一个月了,终于有时间来做一个简单的总结了. 简介:工作不久,基础后端岗位,一面结束,失败. 先做了几个笔试题,面试开始会根据笔试题问一些内容.下面将整理一下还能想起来的内 ...

  6. Android开发面试经——6.常见面试官提问Android题②(更新中...)

    版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/fi ...

  7. Android开发面试经——5.常见面试官提问Android题①

    版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客: http://blog.csdn.net/f ...

  8. Python自动化面试必备 之 你真明白装饰器么?

    Python自动化面试必备 之 你真明白装饰器么? 装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多小白来讲,这个功能 有点绕 ...

  9. 实验8、31个最重要的Python Flask面试问题和答案

    实验介绍 1. 实验内容 内容涵盖了31个最热门的Flask面试问题,帮助学生更好的理解Flask. 2. 实验要点 了解面试Flask开发人员的常见问题 实验内容 Flask面试问答 Q:Flask ...

  10. python解析xml模块封装代码

    在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...

随机推荐

  1. 聊聊如何让办公网络直连Kubernetes集群PodIP/ClusterIP/Service DNS等

    想象一下,如果您日常使用的研发测试Kubernetes集群,能够有以下效果: 在办公网络下直接访问Pod IP 在办公网络下直接访问Service Cluster IP 在办公网络下直接访问集群内部域 ...

  2. Selenium4+Python3系列(八) - Cookie、截图、单选框及复选框处理、富文本框、日历控件操作

    我所在的城市昨天出了近20+的阳性案例,但这丝毫没有 "影响" 到996的工作时间,当然,也没有影响到我想继续更新文章的决心. 一.cookie常用操作入门 上一篇有写过关于coo ...

  3. python实现AES加密解密

    1. 前言 AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个. 之前写过一片关于python AES加密解密的文章,但是这里面细节实在很多,这次我从 参数类型.加密模式.编码模式.补全 ...

  4. 【十次方微服务后台开发】Day02:加密与JWT鉴权、微服务注册中心、配置中心、熔断器、网关、消息总线、部署与持续集成、容器管理与监控Rancher、influxDB、grafana

    一.密码加密与微服务鉴权JWT 1.BCrypt密码加密 Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用B ...

  5. 搭建漏洞环境及实战——搭建SQL注入平台

    Sqli-lab是一款学习SQL注入的开源平台,共有75种不同类型的注入,复制源码然后将其粘贴到网站的目录中,进入MySQL管理中的PHPMyAdmin,打开http://127.0.0.1/phpM ...

  6. RSA_zd网校登录

    网站 aHR0cHM6Ly91c2VyLndhbmd4aWFvLmNuL2xvZ2lu 点到密码登录,会返回验证码 输入错误的账号密码点登录抓包,可以看到密码是被加密的  initator点进去  简 ...

  7. Apache Dubbo 官方正式发布 Spring 6 & Spring Boot 3 支持

    Dubbo 简介 Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java.Golang 等多语言 SDK 实现.使用 Dubbo 开发的 ...

  8. ubuntu系统wireshark源码编译与安装

    官网:https://www.wireshark.org/ 官方文档:Wireshark · Documentation 一 介绍 wireshark[1]是一款抓包工具.wireshark的GUI( ...

  9. asp前端无法获取后端中select *查询带出来的全部字段

    1.环境 前端:ASP.vbscript 后端:vb 数据库:Sql Server 2.问题描述 最近在做需求时碰到一个很奇怪的问题,后端通过select *查询带出来的字段,在前端只能获取到部分字段 ...

  10. C#开发的磁吸屏幕类库 - 开源研究系列文章

    上次写了一个关于线程池的博文,里面讲到了关于磁吸屏幕的类库,今天就把这个类库进行下讲解. 一.      类库目录: 类库的目录见下图,主要定义了Win32的一些API,以及一些API使用到的常量和结 ...