codewar代码练习1——8级晋升7级
最近发现一个不错的代码练习网站codewar(http://www.codewars.com)。注册了一个账号,花了几天的茶余饭后时间做题,把等级从8级升到了7级。本文的目的主要介绍使用感受及相应题目,可供大家参考。
新人注册为8级,入门题NO.1:
topic: Multiply
instructions:The code does notexecute properly. Try to figure out why.
my solution:
def multiply(a, b):
c = a * b
return c
NO2:
topic: ListFiltering
instruction:In this kata you will create a function that takes a list of non-negative integers and strings and returns a new list with the strings filtered out.
example:
my solution:
def filter_list(l):
new_l =[]
for x in l:
if type(x) != str:
new_l.append(x)
return new_l
best practice from others:
def filter_list(l):
'return a new list with the strings filtered out'
return [i for i in l if not isinstance(i, str)]
and
def filter_list(l):
'return a new list with the strings filtered out'
return [x for x in l if type(x) is not str]
No.3
topic:two to one
instruction:Take 2 strings s1 and s2 including only letters from ato z. Return anew sorted string, the longest possible, containing distinct letters,each takenonly once - coming from s1 or
s2.
Examples:
``` a = "xyaabbbccccdefww" b ="xxxxyyyyabklmopq" longest(a, b) -> "abcdefklmopqwxy"
a = "abcdefghijklmnopqrstuvwxyz" longest(a, a) ->"abcdefghijklmnopqrstuvwxyz" ```
my solution:
import string
from pandas import Series
def longest(a,b):
c1 = a + b
c2 = list(c1)
c3 = Series(c2)
c4 = c3.unique().tolist()
c5 = sorted(c4)
c6 = ''.join(c5)
return c6
best solution from others:
def longest(a1, a2):
return "".join(sorted(set(a1 + a2)))
No.4
topic:Categorize New Member
instruction:The Western Suburbs Croquet Club has two categories of membership,Senior and Open. They would like your help with an application form that willtell prospective members which category they will be placed.
To be a senior, a member must be at least 55 years old and have ahandicap greater than 7. In this croquet club, handicaps range from -2 to +26;the better the player the lower the handicap.
example:
my solution:
def openOrSenior(data):
a = []
for i in data:
if i[0]>54 and i[1]>7:
a.append('Senior')
else:
a.append('Open')
return a
best solution from others:
def openOrSenior(data):
return ["Senior" if age >= 55 and handicap >= 8 else "Open" for (age, handicap) in data]
No.5
topic: Array.diff
instruction:your goal in this kata is to implement an difference function, which subtracts one list from another.
example:
my solution:
def array_diff(a, b):
diff = []
for i in a:
if i not in b:
diff.append(i)
return diff
best solution from others:
def array_diff(a, b):
return [x for x in a if x not in b]
No.6
topic:Mumbling
instruction:This time no story, no theory.
example:
my solution:
def accum(s):
b = list(s)
i = 0
for j in b:
b[i] = b[i] * (i+1)
i = i+1
a = list(map(lambda x: x.capitalize(),b))
c = '-'.join(a)
return c
best solution from others:
def accum(s):
return '-'.join((a * i).title() for i, a in enumerate(s, 1))
No.7
topic:Multiples of 3 or 5
instruction:If we list all the natural numbers below 10 that are multiples of 3or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.Finish the solution so that it returns the sum of all the multiplesof 3 or 5 below the number passed in.
note:If the number is a multiple of both 3 and 5, only count it once.
my solution:
def solution(number):
a = []
j = 3
while j<number:
if j%3==0 or j%5==0:
a.append(j)
j = j + 1
return sum(a)
best solution from others:
def solution(number):
return sum(x for x in range(number) if x % 3 == 0 or x % 5 == 0)
在8级的时候,做7级题甚至6级题,能快速升级到7级。知识点总结:
1. type和instance判断数据类型
2. 遍历list的方法,list切片知识,如何读取两个list中的非交集
3. str转list,list转series数据,array转list(array.tolist()),字母如何排序(sorted)
4. set 函数(创建一个无序不重复元素集)
5. 改变字符串的首字母:capital,upper,lower,title
6. join连接字符,split分割字符串
7. 枚举函数enumerate,例如枚举list中的索引和元素
8. 如何跳出嵌套循环(写个def,用return)
9. try和except的使用
10. lambda函数使用
感受:
8级到7级的晋升路上,主要涉及的python的数据结构相关的基础知识点。而python的数据结构知识是在一年前学习的,零零落落已经忘得差不多了,做题目的时候基本靠谷歌知识点。在codewar做题的时候,貌似答案没有通过,是无法看到其他人的答案的。在通过答案后,再看其他人的解法,常常有眼前一亮的感觉。
codewar代码练习1——8级晋升7级的更多相关文章
- codewar代码练习2——7级晋升6级
7级晋升到6级的过程中以做6级题以及以前未完成的题目为主,一般选择算法题或者基础题.相比之前从8级升级7级(参见此博客:http://blog.csdn.net/m0_37324740/article ...
- 行为级和RTL级的区别(转)
转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...
- CSS 各类 块级元素 行级元素 水平 垂直 居中问题
元素的居中问题是每个初学者碰到的第一个大问题,在此我总结了下各种块级 行级 水平 垂直 的居中方法,并尽量给出代码实例. 首先请先明白块级元素和行级元素的区别 行级元素 一块级元素 1 水平居中: ( ...
- 学习总结:CSS(二)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型
一.元素的块级与行级特性 在CSS属性display控制元素是否及如何显示的特性,常用的值有none.inline.block.inline-block,在CSS3中还有一些新的特性状态,在这里不做讨 ...
- 51nod图论题解(4级,5级算法题)
51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...
- js input复选框选中父级同时子级也选中
js实现复选框选中父级元素子级元素也选中,没有子级元素选中父级也不选中的效果 HTML <tr> <td> <label> <input name=" ...
- 操作系统学习笔记5 | 用户级线程 && 内核级线程
在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操 ...
- [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁
注明: 本文转载自http://www.hollischuang.com/archives/914 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的 ...
- MySQL行级锁,表级锁,页级锁详解
页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...
随机推荐
- Spring 小记
本作品由Man_华创作,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.基于http://www.cnblogs.com/manhua/上的作品创作. 使用STS新建spr ...
- Maven上传本地jar
1. 将Jar包安装到本地仓库 -- DgroupId和DartifactId构成了该jar包在pom.xml的坐标, 对应依赖的DgroupId和DartifactId -- Dfile表示需 ...
- 15 nginx反向代理实现nginx+apache动静分离
一:nginx反向代理实现nginx+apache动静分离-------------概念--------------------------- nginx反向代理服务器+负载均衡 用nginx做反向代 ...
- os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目
[0]README 0.0) source code from orange's implemention of a os and for complete code , please visit h ...
- Executors几种常用的线程池性能比较
java编程中,经常会利用Executors的newXXXThreasPool生成各种线程池,今天写了一小段代码,简单测试了下三种常用的线程池: import com.google.common.ut ...
- PHP部分--图片上传服务器、图片路径存入数据库,并读取
html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- LA 3882 And Then There Was One[约瑟夫问题的变形]
And Then There Was One UVALive - 3882 Sample Input Sample Output //设f[i]为(原约瑟夫问题)第i次要删除的标号 #includ ...
- 【BZOJ1095】[ZJOI2007]Hide 捉迷藏 动态树分治+堆
[BZOJ1095][ZJOI2007]Hide 捉迷藏 Description 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉 ...
- LigerUI java SSH小例子
1.新建web project 2.ssh框架 加入到项目中去(这里不介绍,网上搜索) 3.struts2配置 http://www.cnblogs.com/istianyu/archive/2013 ...
- pm2 的使用
pm2.json 代码如下 [{ "name" : "dingtalk-mobile", "script" : "app.js&q ...