📜  门| GATE CS 2021 |套装2 |问题24(1)

📅  最后修改于: 2023-12-03 15:42:12.626000             🧑  作者: Mango

门 | GATE CS 2021 | 套装2 | 问题24

这是2021年GATE CS套装2中的问题24。此问题要求编写一个函数,该函数将一个字符串转换为十进制数,并将其作为字符串返回。

问题描述

编写一个名为 str_to_decimal 的函数,该函数需要将一个字符串作为输入,并将其转换为十进制数。该函数应该返回十进制数的字符串表示形式。如果字符串不是有效的十进制数,则应该返回 "Invalid Input"。

函数原型:

def str_to_decimal(s: str) -> str:
    pass
输入

输入为一个字符串 s,其中 $s$ 的长度不超过 $10^4$。

输出

如果 $s$ 是有效的十进制数,则返回十进制数的字符串表示形式。否则,返回 "Invalid Input"。

例子
示例1

输入:

s = "100"

输出:

100
示例2

输入:

s = "0100"

输出:

Invalid Input
示例3

输入:

s = "abc123"

输出:

Invalid Input
解题思路

本问题可以采用字符串转化成数字的方法来求解。在Python中,有内置的函数 int() 可以将一个字符串转化成数字,其中 int() 函数的一个参数,代表了将字符串按何种进制进行数字转化。如果 int() 函数无法转化输入的字符串,则会抛出一个异常 ValueError,我们可以捕获该异常并返回 "Invalid Input"。

代码实现
def str_to_decimal(s: str) -> str:
    try:
        decimal = int(s, 10)
        return str(decimal)
    except ValueError:
        return "Invalid Input"

其中,int(s, 10) 的意思是将 $s$ 作为十进制数来转化为整数。如果 $s$ 不是一个合法的十进制数,则会抛出一个 ValueError 异常,我们在 try 块中捕获该异常并返回 "Invalid Input"。如果 int() 函数成功转化字符串,我们使用内置函数 str() 来将转化后的数字转化回字符串。