问题:
Given a string containing uppercase alphabets and integer digits (from 0 to 9), write a function to return the alphabets in the order followed by the sum of digits.我的代码:
import re
class Solution:
def rearrange(self, str):
# Write your code here
if str == "":
return str
sum = 0
letter = []
for i in range(len(str)):
if re.search("([A-Z])", str[i]):
letter.append(str[i])
else:
sum += int(str[i])
letsort = sorted(letter)
letstr = "".join(letsort)
result = letstr + str(sum)
return result错误:
Traceback (most recent call last):
File "/code/Main.py", line 20, in
ans = solution.rearrange(str)
File "/code/Solution.py", line 20, in rearrange
result = letstr + str(sum)
TypeError: 'str' object is not callable我不明白其中的原因。
发布于 2018-04-06 05:42:23
str是Python语言中的保留字,您可以通过将rearrange()的第二个参数命名为str来覆盖它。更改rearrange()第二个参数的名称即可完成此操作。
发布于 2018-04-06 05:42:47
您已将变量命名为str -与用于转换为字符串的内置函数同名。你需要重命名它,试试这个:
import re
class Solution:
def rearrange(self, str_in):
# Write your code here
if str_in == "":
return str_in
sum = 0
letter = []
for i in range(len(str_in)):
if re.search("([A-Z])", str_in[i]):
letter.append(str_in[i])
else:
sum += int(str_in[i])
letsort = sorted(letter)
letstr = "".join(letsort)
result = letstr + str(sum)
return resulthttps://stackoverflow.com/questions/49681941
复制相似问题