鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: ooxx7788

[技术交流] Python: 每日一题 34

[复制链接]
发表于 2018-7-28 23:03:31 | 显示全部楼层
jerryxjr1220 发表于 2017-4-27 13:39
def get_longest(lst,k):
  nlst = [len(i) for i in lst]
  xlst = [sum(nlst) for i in range(len(lst) ...

xlst = [sum(nlst[i:i+k]) for i in range(len(lst)-k)]
  maxi = xlst.index(max(xlst))
大哥能把这个按照初学者能看懂的方式写下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-28 23:21:08 | 显示全部楼层
str = "Office workers who would normally step into a pub or gym to cope with the"
lst = str.split(" ")
nlst = [len(i) for i in lst]
t=max(nlst)
d=nlst.index(t)
c = lst[d]
del lst[d]
nlst = [len(i) for i in lst]
t=max(nlst)
d=nlst.index(t)
f=lst[d]
print(c+f)
初学者的献丑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-29 22:45:39 | 显示全部楼层
g=['Office', 'workers', 'who','Office', 'woeqrkers', 'who', 'would', 'normally', 'step', 'into', 'a']

k=3
m=[]
def compare(list,k):
i = 0
while i<k:
      nlst = [len(i) for i in list]
      t = max(nlst)
      d = nlst.index(t)
      m.insert(0,list[d])
      del list[d]
      i+=1
print(  ''.join(m))
compare(g,k)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-18 11:30:54 | 显示全部楼层
  1. test.assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 3), "ixoyx3452zzzzzzzzzzzz")
  2. 为什么我的结果和楼主测试结果不一样
  3. >>> longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 3)
  4. 'zzzzzzzzzzzzwkppvixoyx'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-18 11:31:33 | 显示全部楼层
  1. def longest_consec(strarr,k):
  2.     n = len(strarr)
  3.     if n == 0 or k > n or k <= 0:
  4.         return "无法执行"
  5.     else:
  6.         strarr.sort(key =lambda a:len(a),reverse = True)
  7.         str1 =''
  8.         for i in range(k):
  9.             str1 += strarr[i]
  10.         return str1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-11 17:33:21 | 显示全部楼层
  1. from heapq import nlargest
  2. def longest_consec(lists,num):
  3.     count_list = []
  4.     dict_list = []
  5.     result_list = []
  6.     sorted_list = []
  7.     fr = ''
  8.     joint = ''
  9.     if len(lists) == 0 or num>len(lists) or num<=0:
  10.         return ""
  11.     else:
  12.         for each in lists:
  13.             count_list.append(len(each))
  14.         dict_list = zip(count_list,lists)
  15.         result_list = nlargest(num,dict_list)
  16.         for each in result_list:
  17.             sorted_list.append(each[1])
  18.         fr =joint.join(sorted_list)
  19.     return fr
复制代码

做的好复杂,有2到结果和题主结果不一样。不知道是什么情况。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-28 21:32:24 | 显示全部楼层
本帖最后由 算幽幽 于 2018-9-28 21:41 编辑

I Iove Fishc C

  1. def longest_consec(list1, n):
  2.     if n==0 or len(list1)<n or len(list1)<=0:
  3.         return ''
  4.     i = 0
  5.     list_len = []
  6.     while i + n <= len(list1):
  7.         result = ""
  8.         for m in range(i, i + n):
  9.             result += list1[m]
  10.         else:
  11.             list_len.append(result)
  12.         i+=1
  13.     return sorted(list_len,key=lambda s:len(s))[-1]
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-12 12:56:27 | 显示全部楼层
看看...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-28 10:08:22 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-19 10:35:32 | 显示全部楼层

倒数第3个?结果是这样的?为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-15 20:48:10 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-29 15:13:15 | 显示全部楼层
貌似方法不太对:
  1. def longest_consec(list, k):
  2.     if len(list) == 0 or k > len(list) or k <= 0:
  3.         return ''
  4.     list.sort(reverse = True, key = len)
  5.     s = ''
  6.     for i in range(k):
  7.         s += list[i]
  8.     return s
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-4 19:45:05 | 显示全部楼层
没看懂 = =
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-5 08:48:41 | 显示全部楼层
import time
def fun32():
    Tiangan = {3:"甲",4:"乙",5:"丙",6:"丁",7:"戊",8:"己",9:"庚",0:"辛",1:"壬",2:"癸"}
    DiZhi = {3:"子",4:"丑",5:"寅",6:"卯",7:"辰",8:"巳",9:"午",10:"未",11:"申",0:"酉",1:"戌",2:"亥"}
    ShengXiao = {"子":"鼠","丑":"牛","寅":"虎","卯":"兔","辰":"龙","巳":"蛇","午":"马","未":"羊","申":"猴","酉":"鸡","戌":"狗","亥":"猪"}
    Jiazibiao = {1:"甲子", 11:"甲戌", 21:"甲申",31:"甲午",41:"甲辰",51:"甲寅",
                 2:"乙丑",12:"乙亥",22:"乙酉",32:"乙未",42:"乙巳",52:"乙卯",
                 3:"丙寅",13:"丙子",23:"丙戌",33:"丙申",43:"丙午",53:"丙辰",
                 4:"丁卯",14:"丁丑",24:"丁亥",34:"丁酉",44:"丁未",54:"丁巳",
                 5:"戊辰",15:"戊寅",25:"戊子",35:"戊戌",45:"戊申",55:"戊午",
                 6:"己巳",16:"己卯",26:"己丑",36:"己亥",46:"己酉",56:"己未",
                 7:"庚午",17:"庚辰",27:"庚寅",37:"庚子",47:"庚戌",57:"庚申",
                 8:"辛未",18:"辛巳",28:"辛卯",38:"辛丑",48:"辛亥",58:"辛酉",
                 9:"壬申",19:"壬午",29:"壬辰",39:"壬寅",49:"壬子",59:"壬戌",
                 10:"癸酉",20:"癸未",30:"癸巳",40:"癸卯",50:"癸丑",60:"癸亥"}
    localtime = time.asctime( time.localtime(time.time()))
    LCurrentYear=localtime.split(" ")
    CurrentYear=LCurrentYear[len(LCurrentYear)-1]
    Year = str(input("请输入年份:"))
    Tian = Tiangan[int(Year[len(Year)-1])]
    Di = DiZhi[int(Year) % 12]
    ShuXiang = ShengXiao[Di]
    print("公元%s是黄历的%s年。属相是%s" % (Year,Tian+Di,ShuXiang))
    GanZi = input("请输入干子:")
    if GanZi in Jiazibiao.values():
        for key in Jiazibiao.keys():
            if Jiazibiao[key]== GanZi:
                GanZiindex = key
                break
        
    else:
        print("输入干子不对")
        
    Year = CurrentYear
    Tian = Tiangan[int(Year[len(Year)-1])]
    Di = DiZhi[int(Year) % 12]
    CurrentYearGanZi=Tian+Di
    for key1 in Jiazibiao.keys():
        if Jiazibiao[key1]== CurrentYearGanZi:
            CurrentYearGanZiindex = key1
            break
    if CurrentYearGanZi==GanZi:
       print("上一个%s年是%d.下一个%s年时%d.本年%d也是%s年" % (GanZi,int(Year)-60,GanZi,int(Year)+60,int(CurrentYear),GanZi))
    else:
         print("上一个%s年是%d.下一个%s年时%d." % (GanZi,int(Year)-(CurrentYearGanZiindex-GanZiindex),GanZi,int(Year)-(CurrentYearGanZiindex-GanZiindex)+60))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-5 09:05:25 | 显示全部楼层
Jung 发表于 2019-12-5 08:48
import time
def fun32():
    Tiangan = {3:"甲",4:"乙",5:"丙",6:"丁",7:"戊",8:"己",9:"庚",0:"辛",1: ...

发错地方了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 08:41:39 | 显示全部楼层
def longest_consec(strarr,k):
    n = len(strarr)
    chr_len = {}
    if n ==0 or k > n or k <= 0:
        return ''
    else:
        for idx in range(1,len(strarr)+1):
            length = len(strarr)
            chr_len[strarr[idx]] = length
        for k in chr_len.keys():
            if chr_len[k]
            #用字典排序


            return ''.join(strarr[-2:])

if __name__ == '__main__':
    strarr = list(input('请输入字符串元素(用逗号分隔): ').split(','))
    k = int(input('请输入需要取出的字符串个数: '))
    print(longest_consec(strarr, k))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 15:43:41 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-11 15:50:23 | 显示全部楼层
'''

给你一个字符串组成列表strarr,给你一个整数k。
你的任务是找出由k个字符组成的最长的连续的字符串组合。
例子:
longest_consec(["zone", "abigail", "theta", "form", "libe", "zas", "theta", "abigail"], 2) --> "abigailtheta"
n是列表的长度,如果if n = 0 or k > n or k <= 0 return ""
'''

'''
解题思路:
1.新建一个列表存放原字符串列表中每个字符的长度
2.通过max函数和index函数找到最长字符串的索引值
3.同时删除两个列表最长字符串的索引值再次循环找到最长字符串的索引值
'''
#请将以下代码存为test.py用于检验答案。
def assert_equals(func, target, *args):
    if func == target:
        print('Success!')
    else:
        print('Fail!{0} not equals {1}'.format(func, target))
        print(*args)


def longest_consec(list,k):
    #1.新建一个列表存放原字符串列表中每个字符的长度
    listSort = []
    str=""
    if len(list) ==0 or k > len(list) or k <=0:
        return ""
    else:
        for i in list:
            #1.新建一个列表存放原字符串列表中每个字符的长度
            listSort.append(len(i))
        for j in range(k):
            #通过max函数和index函数找到最长字符串的索引值
            index = listSort.index(max(listSort))
            str += list[listSort.index(max(listSort))]
            #同时删除两个列表最长字符串的索引值对应的字符
            listSort.remove(max(listSort))
            list.remove(list[index])
    return str


assert_equals(longest_consec(["zone", "abigail", "theta", "form", "libe", "zas"], 2), "abigailtheta")
assert_equals(longest_consec(["ejjjjmmtthh", "zxxuueeg", "aanlljrrrxx", "dqqqaaabbb", "oocccffuucccjjjkkkjyyyeehh"], 1), "oocccffuucccjjjkkkjyyyeehh")
assert_equals(longest_consec([], 3), "")
assert_equals(longest_consec(["itvayloxrp","wkppqsztdkmvcuwvereiupccauycnjutlv","vweqilsfytihvrzlaodfixoyxvyuyvgpck"], 2), "wkppqsztdkmvcuwvereiupccauycnjutlvvweqilsfytihvrzlaodfixoyxvyuyvgpck")
assert_equals(longest_consec(["wlwsasphmxx","owiaxujylentrklctozmymu","wpgozvxxiu"], 2), "wlwsasphmxxowiaxujylentrklctozmymu")
assert_equals(longest_consec(["zone", "abigail", "theta", "form", "libe", "zas"], -2), "")
assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 3), "ixoyx3452zzzzzzzzzzzz")
assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 15), "")
assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 0), "")


Success!
Success!
Success!
Success!
Fail!owiaxujylentrklctozmymuwlwsasphmxx not equals wlwsasphmxxowiaxujylentrklctozmymu

Success!
Fail!zzzzzzzzzzzzwkppvixoyx not equals ixoyx3452zzzzzzzzzzzz

Success!
Success!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 17:10:23 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 21:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表