最近发现一个不错的代码练习网站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级的更多相关文章

  1. codewar代码练习2——7级晋升6级

    7级晋升到6级的过程中以做6级题以及以前未完成的题目为主,一般选择算法题或者基础题.相比之前从8级升级7级(参见此博客:http://blog.csdn.net/m0_37324740/article ...

  2. 行为级和RTL级的区别(转)

    转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...

  3. CSS 各类 块级元素 行级元素 水平 垂直 居中问题

    元素的居中问题是每个初学者碰到的第一个大问题,在此我总结了下各种块级 行级 水平 垂直 的居中方法,并尽量给出代码实例. 首先请先明白块级元素和行级元素的区别 行级元素 一块级元素 1 水平居中: ( ...

  4. 学习总结:CSS(二)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

    一.元素的块级与行级特性 在CSS属性display控制元素是否及如何显示的特性,常用的值有none.inline.block.inline-block,在CSS3中还有一些新的特性状态,在这里不做讨 ...

  5. 51nod图论题解(4级,5级算法题)

    51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...

  6. js input复选框选中父级同时子级也选中

    js实现复选框选中父级元素子级元素也选中,没有子级元素选中父级也不选中的效果 HTML <tr> <td> <label> <input name=" ...

  7. 操作系统学习笔记5 | 用户级线程 && 内核级线程

    在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操 ...

  8. [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁

    注明: 本文转载自http://www.hollischuang.com/archives/914 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的 ...

  9. MySQL行级锁,表级锁,页级锁详解

    页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...

随机推荐

  1. FTP 连接报错

    Filezilla 站点管理器=>选中FTP站点=>加密(只使用普通FTP)

  2. MySql(八):MySQL性能调优——Query 的优化

    一.理解MySQL的Query Optimizer MySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的 ...

  3. 开发ActiveX控件调用另一个ActiveX系列0——身份证识别仪驱动的问题

    程序员要从0下表开始,这篇是介绍这个系列的背景的,没有兴趣的人可以直接跳过. 为什么要开发ActiveX控件 由于工作需要,我们开发了一个网站,使用了一款身份证识别仪的网页ActiveX(OCX)插件 ...

  4. 蓝桥杯OJ PREV-19 九宫重排

    题目描写叙述:   历届试题 九宫重排   时间限制:1.0s   内存限制:256.0MB        问题描写叙述 如以下第一个图的九宫格中,放着 1~8 的数字卡片.另一个格子空着.与空格子相 ...

  5. u-boot-2014.04分析

    本文档以smdk2410为例初步分析了u-boot-2014.04的配置.启动流程.代码重定向.内存分布. u-boot-2014.04这个版本的uboot从Linux内核中借鉴了很多东西,比如编译u ...

  6. JSP——Web应用

      1.EL表达式   2.jstl fmt功能说明     3.jsp 自定义标签     4.QR码————二维码等条码

  7. WEB消息推送-comet4j

    一.comet简介: comet :基于 HTTP长连接的“服务器推”技术,是一种新的 Web 应用架构.基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的 ...

  8. 【BZOJ4514】[Sdoi2016]数字配对 费用流

    [BZOJ4514][Sdoi2016]数字配对 Description 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 ...

  9. wepy error Parsing error: Unexpected token :

    mpBMCwepy\wepy.config.js eslint  信息 全局重装wepy-clinpm install wepy-cli -g -registry=https://registry.n ...

  10. iOS 流布局 UICollectionView使用(使用FlowLayout进行更灵活布局)

    在UICollectionView的布局中,如果每个item的大小都一样那么是十分简单的事情,但是,如果我们想要的每个item大小不一样呢,这个时候,就要对UICollectionViewFlowLa ...