python练手题目_Python练手题目(七)

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'))

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.编程技巧

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值