EzRealllllll 2022-06-13 12:26 采纳率: 66.7%
浏览 29
已结题

对字符串进行特殊的排列组合

写一个类,输入一个字符串和一个列表,列表包含了部分字符串字母可能的排练组合,输出包含部分中最长的组合,例如

print(longest_word_sequence("Green", {"Gn", "Gren", "Grean", "en"})) 
print(longest_word_sequence("pythonexercises", {"py", "ex", "exercises","axercises"})) #输入

Gren 
exercises #输出

字符串的排列组合还需要考虑参与排列的字母,例如apple的排列: "a", "ap", "al", "ae", "app", "apl", "ape", "ale", "appl", "appe", "aple", "apple", "p", "pp", "pl", "pe", "ppl", "ppe", "ple", "pple", "l", "le", "e", "".

我在编写的时候不知道如何实现不同字母参与的排列,比如abc,我不是很懂如何能实现,a,ab,ac这样,只能写出abc,cba等。希望能得到解答,谢谢!

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-13 12:33
    关注

    题目不需要列出所有的组合吧?
    不是只要找出“包含部分中最长的组合”吗?

    def is_in_s(s:str,l:str)->bool:
        s=list(s)
        for i in list(l):
            if i not in s:
                return False
            else:
                s.remove(i)
        return True
    
    def longest_word_sequence(s:str,l:set)->str:
        return max([i for i in l if is_in_s(s,i)],key=len)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日

悬赏问题

  • ¥15 matlab透明图叠加
  • ¥50 基于stm32l4系列 使用blunrg-ms的ble gatt 创建 hid 服务失败
  • ¥15 关于#服务器#的问题:在VMware虚拟机中有一个域控服务器,克隆这个服务器后,使用克隆在另外一台服务器VMware虚拟机上打开,修改IP地址, 原域控服务器关闭
  • ¥150 计算DC/DC变换器平均模型中的参数mu
  • ¥25 C语言代码,大家帮帮我
  • ¥15 请问以下文字内容及对应编码是用了什么加密算法或压缩算法呢?
  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错