1、寻找质数
'''
给你一个整数n,且n>3,返回不包含n以内的质数。
解题思路:质数的约数只有1和本身,所以如果一个质数除以小于它本身的数,余数都不为0;因此只要两层循环,每个数都除以小于它本身的数,看余数是否为0,为0则不是质数,余数都是0,则是质数。
'''
def findZhiShu(n):
result = []
for i in range(3,n):
flag = 0
for j in range(3,i):
if i%j==0:
flag = 1
if flag == 0:
result.append(i)
return result
2、寻找平方数
'''
给定一个奇数,该数一定是连续两个完全平方数之差。
输入n,以”大-小“的格式返回字符串。
如输入:9,输出:”25-16“
'''
def findSquares():
x = 0
n = int(input('请输入一个奇数:'))
while True:
if n % 2 == 0:
n = int(input('请输入一个奇数:'))
else:
break
while True:
if n == (x+1)**2-(x)**2:
return "{}-{}".format((x+1)**2,(x)**2)
x = x+1
3、数组去重
解题思路:定义一个空数组,遍历原数组,判断遍历的数是否存在于空数组,若不存在则添加到空数组,若存在则不添加。
'''
数组去重
如输入:[1,1,1,2,2,2,3,3,3],输出:[1,2,3]
'''
def ShuZuQuChong(list):
newlist = []
for i in list:
if i not in newlist:
newlist.append(i)
return newlist
4、字符串去重
'''
字符串去重
如输入:chinese is good chinese is good good is is chinese',输出:‘chinese is good’
解题思路:定义一个空字符串,对原字符串进行切割,切割后返回一个数组,数组的元素是字符串。遍历数组,判断数组里的元素是否存在空字符串中,若不存在则进行字符串拼接,若存在,则不做处理。
'''
str = 'chinese is good chinese is good good is is chinese'
def strQuchong(str):
newstrlist = str.split(' ')
newstr = ''
for str in newstrlist:
if str not in newstr:
newstr = newstr + " " + str
return newstr
5、提取域名
'''
给定一个字符串格式的url,提取主域名
https://www.baidu.com/ -- baidu
https://baidu.com/ --baidu
解题思路:使用python内置函数split进行切割处理
'''
def getUrl(str):
str = str.split('//')[1].split('.')
return str[0] if str[0] != 'www' else str[1]
6、字符串反转
'''
字符串反转,空格保留
解题思路就是反向遍历,然后拼接
'''
def rStr(str):
result = ''
for i in range(len(str)-1,-1,-1):
result = result + str[i]
return result
7、寻找重复数字
'''
数组有重复的数字,找出任一重复的数字
思路:1.先找出重复的数字,将其添加到一个新数组中。2.对新数组去重,然后返回任一一个。
'''
import random
def xF(n):
newlist = []
result = []
flist = []
for i in n:
if i not in newlist:
newlist.append(i)
else:
result.append(i)
for j in result:
if j not in flist:
flist.append(j)
return random.choice(flist)
8、替换字符串中的空格
'''
把字符串中的控股替换成%20
思路:用python内置函数split进行切割,切割后返回一个数组,然后遍历这个数组,进行字符串拼接
'''
def xF(s):
list = s.split(' ')
str = list[0]
for i in range(len(list)-1):
str = str + '%20'+list[i+1]
return str
9、斐波那契数列
'''
斐波那契数列:0是0,1是1;1以上的数,为前两数之和
'''
def fn(n):
if n <= 1:
return n
n = fn(n-1)+fn(n-2)
return n
10、寻找数组最小值
'''
寻找数组中的最小值
思路:定义0为最小索引值,然后遍历数组,一一比较,若值比min索引值小,则替换索引值
'''
def fn(n):
min = 0
for i in range(len(n)):
if n[i] < n[min]:
min = i
return(i,n[i])