📜  门| GATE MOCK 2017 |问题3(1)

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

门 GATE MOCK 2017 - 问题3

问题3要求我们实现一个算法,将一个字符串中的符号 $ 转换成一个数字。

输入格式

输入是一个包含 $ 符号的字符串 s,符号 $ 代表一个数字。输入的字符串最多包含100个字符。

输出格式

输出一个字符串 ans,代表将输入字符串中所有的 $ 都替换成数字后的结果。如果字符串中不包含 $ 符号,则输出原字符串。

示例

输入:

"abc$def$gh"

输出:

"abc1def2gh"
思路

可以使用字符串的遍历来实现该算法,遇到 $ 符号就记录一个数字,然后将 $ 替换成该数字即可。

代码
def replace_dollar_with_number(s):
    num = 1
    ans = ""
    for c in s:
        if c == "$":
            ans += str(num)
            num += 1
        else:
            ans += c
    return ans
测试
assert replace_dollar_with_number("abc$def$gh") == "abc1def2gh"
assert replace_dollar_with_number("a$b$c$d$") == "a1b2c3d4"
assert replace_dollar_with_number("$e$e") == "1e2e"
assert replace_dollar_with_number("no$number") == "no$number"

以上是对 GATE MOCK 2017 - 问题3 的解答。