Codewar刷题总结


目的: 在Codewar的刷题过程中,发现:

  1. 思维过于古板和定式
  2. 刷过题目的重点细节会随着时间遗忘

为了解决上述问题,同时学习markdown的使用,便于今后的学习总结,特此尝试以下。

正文

题目1:Find the capitals

Instructions

Write a function that takes a single string (word) as argument. The function must return an ordered list containing the indexes of all capital letters in the string.

Example

Test.assertSimilar( capitals('CodEWaRs'), [0,3,4,6] );

Solutions

my solution:
def capitals(word):
    #your code here
    lst = []
    lst_num = []
    index = 0
    for val in word:
        lst.append(val)
    lst_word = ''.join(lst)
    for val in lst_word:
        if val.isupper():          
            lst_num.append(index)
        index = index + 1
    return lst_num

思路:先对字符串转为列表,利用index索引值记录大写字母所在位置

Better Solutions:
def capitals(word):
    return [i for (i, c) in enumerate(word) if c.isupper()]
def capitals(word):
    uppers = []
    for i in range(len(word)):
        if word[i].isupper():
            uppers.append(i)
    return uppers

总结: 上述两种解法,有两点需要记住:
1.enumerate() 函数使用
2.for i in range(len(word)): 在CS224N课程中,求共现矩阵时,也用到了这种方法。不要只会对元素进行循环遍历,可尝试,获取整个列表或者字符串的长度,再利用下标对元素进行访问。

题目2:Find the capitals

Instructions

Jaden Smith, the son of Will Smith, is the star of films such as The Karate Kid (2010) and After Earth (2013). Jaden is also known for some of his philosophy that he delivers via Twitter. When writing on Twitter, he is known for almost always capitalizing every word.

Your task is to convert strings to how they would be written by Jaden Smith. The strings are actual quotes from Jaden Smith, but they are not capitalized in the same way he originally typed them.

Example

Not Jaden-Cased: "How can mirrors be real if our eyes aren't real"
Jaden-Cased:     "How Can Mirrors Be Real If Our Eyes Aren't Real"

Solutions

my solution:
def toJadenCase(string):
    lst = []
    for val in string.split(' '):
        lst.append(val.capitalize())
        string = ' '.join(lst)
    return string

总结:先将字符串内每个单词读出(split方法按空格切分)
将列表转换为字符串方法:

string = ' '.join(lst)
better solutions:
import string

def toJadenCase(NonJadenStrings):
    return string.capwords(NonJadenStrings)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值