codewars Kata——Duplicate Encoder问题

大致思路

利用字典dict数据结构,将字符串中的字符与该字符出现的次数建立一一对应的映射关系,通过遍历字符串检视每一字符出现的次数来决定生成新字符的内容

代码

# -*- coding: utf-8 -*-
"""
Kata Duplicate Encoder

Created on Sat Nov 21 10:11:07 2020

@author: Pray
"""

def duplicate_encode(word):
    #your code here
    newword=[]                  #建立一个列表存储新字符串的各个字符
    d = dict()                  #建立一个字典,用于存储原字符串中各字符与其出现次数的映射关系
    word = word.lower()         #由于在该题中,认为大写字母和小写字母不加区分,所以我们将原字符串全部转换为小写
    # =============================================================================
    # 遍历原字符串,建立字符串与其出现次数的映射关系
    # =============================================================================
    for x in word:
        if x not in d.keys():
            d[x] = 1
        else:
            d[x] = d[x] + 1
    # =============================================================================
    # 生成新字符串
    # =============================================================================
    for i in word:
        if(d[i] > 1):
            newword.append(')')
        else:
            newword.append('(')
    newword = ''.join(newword)  #将字符列表拼接成字符串
    return newword
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值