lintcode-720重排带整数字符串

  • 题目描述:

给一包含大写字母和整数(从 0 到 9)的字符串, 试写一函数返回有序的字母以及数字和.

样例

给出 str = AC2BEW3, 返回 ABCEW5
字母按字母表的顺序排列, 接着是整数的和(2 和 3).

  • 分析
  1. 将string转成list进行分析,按照ascii码将list里面的元素分成数字和大写字母,对数字求和,对字母进行排序。
  2. 在python3中,注意list型,int型,str型的相互转换。
  3. 在提交代码过程中如果输入的字符串为空注意应直接返回为空而不是0。
  • code

 

class Solution:
    """
    @param str_ing: a string containing uppercase alphabets and integer digits
    @return: the alphabets in the order followed by the sum of digits
    """

    def rearrange(self, str_ing):
        # Write your code here
        list_str = list(str_ing)
        number = []
        letter = []
        if str_ing == '':
            return ''
        for i in list_str:
            if i >= '0' and i <= '9':
                number.append(int(i))
            elif i >= 'A' and i <= 'Z':
                letter.append(i)

        # sum_str = str(sum(number))
        sum_str = str(sum(number))
        letter.sort()
        letter.append(sum_str)
        str_letter = "".join(letter)
        return str_letter 
                

 

 

 

posted @ 2018-11-04 19:20  Yelush  阅读(194)  评论(0编辑  收藏  举报