博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codewars第四天--Two to One
阅读量:4302 次
发布时间:2019-05-27

本文共 889 字,大约阅读时间需要 2 分钟。

Codewars第四天–Two to One

题目描述:

Take 2 strings s1 and s2 including only letters from ato z. Return a new sorted string, the longest possible, containing distinct letters,
each taken only once - coming from s1 or s2. #Examples: a = "xyaabbbccccdefww" b = "xxxxyyyyabklmopq" longest(a, b) -> "abcdefklmopqwxy"
a = "abcdefghijklmnopqrstuvwxyz" longest(a, a) -> "abcdefghijklmnopqrstuvwxyz"

想的思路是将字符串合并为一个,然后依次判断加入到一个新的列表中,然后得到没有重复字符的列表,对其排序转换输出即可。代码如下:

def longest(s1, s2):    # your code    z = s1 + s2    result = []    for i in z:        if i not in result:            result.append(i)    result.sort()    return "".join(result)

*遇到的问题,在使用"".join() 将列表转换为字符串的过程中,开始使用了"".join(result.soirt()) 语句,出现了类型错误:

TypeError: can only join an iterable

原因是join里面不能出现函数,需要单独提出了排序后,再使用join进行操作。

最佳做法:

def longest(a1, a2):    return "".join(sorted(set(a1 + a2)))

使用sorted进行排序,set()可以创建一个无序不重复元素集,这样就起到了去重作用。

转载地址:http://mmmws.baihongyu.com/

你可能感兴趣的文章
python正则表达式入门二
查看>>
scrapy运行
查看>>
XPATH入门
查看>>
python爬虫 CSS选择器
查看>>
正常关闭java程序
查看>>
查看linux核心数
查看>>
数据结构与算法三: 数组
查看>>
Activiti工作流会签二 启动流程
查看>>
Activiti工作流会签三 撤销,审批,驳回
查看>>
Oauth2方式实现单点登录
查看>>
CountDownLatch源码解析加流程图详解--AQS类注释翻译
查看>>
ES相关度评分
查看>>
我们一起做一个可以商用的springboot脚手架
查看>>
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
查看>>
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>