首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python练手题目(七)

Python练手题目(七)

作者头像
stormwen
发布2019-08-05 10:31:19
5580
发布2019-08-05 10:31:19
举报
文章被收录于专栏:公众号:googpy公众号:googpy

1. 计算重复字母出现的次数

编写一个函数,该函数将返回在输入字符串中出现多次(不同的不区分大小写的)字母字符和数字的计数。可以假定输入字符串仅包含字母(大写和小写)和数字。

例如: "abcde" -> 0 # no characters repeats more than once

"aabbcde" -> 2 # 'a' and 'b'

"aabBcde" -> 2 # 'a' occurs twice and 'b' twice (`b` and `B`)

"indivisibility" -> 1 # 'i' occurs six times

"Indivisibilities" -> 2 # 'i' occurs seven times and 's' occurs twice

"aA11" -> 2 # 'a' and '1'

"ABBA" -> 2 # 'A' and 'B' each occur twice

首先可以利用Python的collection包下counter的类

这个方法可以统计出每个元素出现的次数,代码如下:

def duplicate_count(text):
 from collections import Counter
 result = Counter(text)
 return result

print(duplicate_count('aA11'))

其次,可以把输入的字符串全部变成小写(大写),然后用if判断语句进行计数统计,代码如下:

def duplicate_count(text):
    text = text.lower()
    counts = 0
    for i in set(text):
        if text.count(i) >= 2:
            counts += 1
    return counts
print(duplicate_count('aA11'))

一年之计在于春

春天的样子,大概是褪去背了一个冬季的厚重外套,穿上亮色的卫衣搭配牛仔裤和帆布鞋,站在熟悉的街口,抬头望天,春风拂面,不由自主地哼起小调,大步向前,无所畏惧。

——stormwen

2. 把0挪到队尾

编写一个算法,该算法采用数组并将所有零移动到最后,保留其他元素的顺序。 例如: move_zeros([false,1,0,1,2,0,1,3,"a"]) # returns[false,1,1,2,1,3,"a",0,0]

大家可以试试这个题目,很有意思的。

我是这样考虑的,对元组中的元素进行判断,然后用一个循环,删掉一个0,就在元组末尾补一个0,就可以达到题目要求,代码如下:

def move_zeros(array):
    for i in array:
        if i ==0 and str(i) != 'False':
           array.remove(0)
           array.append(0)
    return array

3.编程技巧

对于我每天分享的题目,大家做完之后,首先一定要跑测试用例;然后一定要温故,多想想有没有更优的解法,再此也欢迎大家交流;最后能做个笔记会更好,对你的功力绝对有好处。做完这三步,你的功力必大涨。

交流是提高技术的捷径

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 googpy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档