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 , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...
随机推荐
- 设计模式之MVC设计模式初阶
MVC M:Model(数据) V:View(界面) C:Control(控制) 1⃣️Control可以直接访问View和Model 2⃣️View不可以拥有Control和Model属性,降低耦合 ...
- 15:取近似值ApproximateValue
题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述:输入一个正浮点数值 输出描述:输出该数值的近似整数值 输入例子 ...
- HDU 3461 Code Lock(并查集的应用+高速幂)
* 65536kb,仅仅能开到1.76*10^7大小的数组. 而题目的N取到了10^7.我開始做的时候没注意,用了按秩合并,uset+rank达到了2*10^7所以MLE,所以貌似不能用按秩合并. 事 ...
- oracle不同用户间访问表不添加用户名(模式)前缀
默认的情况下,oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 user表,需要这样访问 select * from B.user;如果想要不添加用户前缀,需要这样处理: ...
- HDU1864 最大报销额 01背包
非常裸的01背包,水题.注意控制精度 #include <iostream> #include <algorithm> #include <cstdio> #inc ...
- ES6之路
从工作到现在,虽然是PHP出身,一直都和JS形影不离,从JQ和原生处理页面,到后来被angular1的MVVM模式惊艳到,再到弃angular转战vue,到现在使用react,一路走来,跳坑无数,现在 ...
- JVM相关小结
对JVM中分层模型.垃圾回收期.垃圾回收算法趁着周末小结一下.有不对的地方,还请指正和讨论~ 1.JVM内存模型 2.JVM垃圾回收期 3.JVM垃圾回收算法 ------------------- ...
- python推荐系统库
Python推荐系统库——Surprise 在Python中实现你自己的推荐系统 python-recsys:一款实现推荐系统的python库
- 高复用率的RTSPClient组件EasyRTSPClient设计流程概述
EasyRTSPClient 设计过程 概述 EasyRTSPClient 基于live555构建而成. 今天讲讲EasyRTSPClient的设计过程 EasyRTSPClient,主要包括以下部分 ...
- Elasticsearch集群UNASSIGNED
Elasticsearch集群UNASSIGNED http://shineforever.blog.51cto.com/1429204/1859734 http://www.searchtech.p ...