python学习笔记-字符串对象的匹配方法startswith

一、功能

startswith 是 Python 字符串对象的一个方法,用于检查字符串是否以指定的前缀开头

二、参数

str.startswith(prefix, start, end)
  • prefix:要检查的前缀字符串。
  • start (可选):开始检查的起始位置,默认为 0。
  • end (可选):结束检查的结束位置,默认为字符串的长度。

三、使用举例:
如果字符串以指定的前缀开头,则返回 True,否则返回 False。例如:

str = "Hello, world!"
result = str.startswith("Hello")
print(result)  # 输出 True

四、用在LeetCodet题目13. 罗马数字转整数中
LeetCode 题13 罗马数字转整数

class Solution:
    def romanToInt(self, s: str) -> int:
        Rlst, ans = [("M", 1000), ("CM", 900), ("D", 500), ("CD", 400), ("C", 100), ("XC", 90), ("L", 50), ("XL", 40), ("X", 10), ("IX", 9), ("V", 5), ("IV", 4), ("I", 1)], 0
        for rs, rv in Rlst:
            while s.startswith(rs): 
                ans += rv
                s = s[len(rs):]
        return ans

作者:_G_
链接:https://leetcode.cn/problems/roman-to-integer/solutions/2490728/zhi-jie-mo-ni-bian-li-ji-suan-by-admirin-gisa/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Rlst, ans = [("M", 1000), ("CM", 900), ("D", 500), ("CD", 400), ("C", 100), ("XC", 90), ("L", 50), ("XL", 40), ("X", 10), ("IX", 9), ("V", 5), ("IV", 4), ("I", 1)], 0
        for rs, rv in Rlst:

匹配字典时会从左到右依次匹配,所以匹配CD时不会匹配到C

while s.startswith(rs): 
                ans += rv
                s = s[len(rs):]
  1. startswith 方法用于检查字符串是否以指定的前缀开头。在这个代码片段中,s 是要检查的字符串,rs 是要检查的前缀。如果 s 以 rs 开头,则返回 True,否则返回 False。
  2. 将字典中对应的values加给ans
  3. 使用切片操作来更新字符串 s。在这里,s[len(rs):] 表示从索引 len(rs) 开始到字符串 s 的末尾的子字符串。这个操作将字符串 s 更新为其余部分,或者删除前面的部分。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值