叮叮叮~
总觉得得不断学习才是啊~今天就来看一下这个奇怪的题目吧
(因为布吉岛为什么叫第二公共单词啊~所以觉得很奇怪
首先,题目如下:
解题思路:将验证的字符串转化为数组,进行比较,如果出现相同字符则存入数组,并且只保留第一个。
def get_second_word(str1, str2): # 第二公共单词
# # 判断字符串是否为空
# if not str1.strip():
# return 'Null'
# if not str2.strip():
# return 'Null'
# # 将字符串变成数组来进行比较
# arr1 = str1.split(' ')
# arr2 = str2.split(' ')
# # 判断单词是否够长度
# if len(arr1) < 2:
# return 'Null'
# if len(arr2) < 2:
# return 'Null'
# 判断数组长度以及转变数组的简化
str1 = ''
L1 = str1.split()
if len(L1) < 2:
return 'NULL'
str2 = ''
L2 = str2.split()
if len(L2) < 2:
return "Null"
# 如果两个句子一样则返回第二个的第二位
if arr1 == arr2:
return arr2[1]
# 新建一个空数组
arr = []
# 循环他们 进行比较
for i in arr1:
for j in arr2:
if i == j:
# 放到数组中
arr.append(i)
# 判断数组中是否有值
if len(arr) > 1:
print("两个字符串的第二公共单词是:", arr[0])
return arr[0]
else:
return 'Null'
if __name__ == '__main__':
str1 = input("请输入第一组字符串,空格隔开:")
str2 = input("请输入第二组字符串:")
get_second_word(str1, str2)
酱紫就OK啦~
另外可以将return 'NULL'
改为print 'NULL'
~
至于时间和空间复杂度???emmmmm。。。。。
嗯,,,这里再写一个不用函数的吧???
s = input('请输入第一组字符串:')
s1 = input('请输入第二组字符串:')
s2 = set(s.split())
s3 = set(s1.split())
s4 = s2 & s3
print(s4)
if not s4:
print('NULL')
else:
for i in s.split():
if i in s2 & s3:
print(i)
break
回顾下split()方法:
1. 描述:
切片的意思,即通过指定分隔符对字符串进行一定间隔的切片
2. 语法:
s.split(str = ' ', num = string.count(s)) # 这里注意下是返回有num+1个参数的列表
3. 参数
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。默认为 -1, 即分隔所有。
呦西~~~~到这里就完结啦~(撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。拜拜啦~