字符串(1--1-3)

题目描述1:替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

Python代码实现:

// An highlighted block
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        s = list(s)
        # print("s: ", s)
        count=len(s)
        # print("count: ", count)
        for i in range(0,count):
            if s[i]==' ':
                s[i]='%20'
        return ''.join(s)

if __name__ == "__main__":
    a = Solution()
    target = "We Are Happy"
    print(a.replaceSpace(target))

题目描述2:正则表达式匹配

请实现一个函数用来匹配包括’.‘和’ * ‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’ * '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab * ac * a"匹配,但是与"aa.a"和"ab*a"均不匹配。

Python代码测试:

// An highlighted block
class Solution:
    def match(self, s, pattern):
        if (len(s) == 0 and len(pattern) == 0):
            return True
        if (len(s) > 0 and len(pattern) == 0):
            return False
        if (len(pattern) > 1 and pattern[1] == '*'):
            if (len(s) > 0 and (s[0] == pattern[0] or pattern[0] == '.')):
                return (self.match(s, pattern[2:]) or self.match(s[1:], pattern[2:]) or self.match(s[1:], pattern))
            else:
                return self.match(s, pattern[2:])
        if (len(s) > 0 and (pattern[0] == '.' or pattern[0] == s[0])):
            return self.match(s[1:],pattern[1:])
        return False

if __name__ == "__main__":

    a = Solution()
    s = "aaa"
    pattern = "ab*ac*a"
    data = a.match(s, pattern)
    print(data)

题目描述3:表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。
Python代码测试:

// An highlighted block
class Solution:
    def isNumeric(self, s):
        try:
            p = float(s)
            return True
        except:
            return False


if __name__ =="__main__":
    a = Solution()
    b = "12e"
    print(a.isNumeric(b))

题目描述4:字符流中第一个不重复的字符

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。

输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。

Python代码测试:

// An highlighted block
def find_str(arr):
    dic={}

    for i in range(len(arr)):
        print("i: ", i)
        if arr[i] in dic:
            dic[arr[i]]+=1

        else:
            print(dic)
            dic[arr[i]]=1
    for i in range(len(arr)):
        if dic[arr[i]]==1:
            return arr[i]

if __name__ == '__main__':
    arr=input("input:")
    print(find_str(arr))

https://blog.csdn.net/weixin_42153985/article/details/80277761

相关知识点回顾:

总结:

替换空格:
https://blog.csdn.net/qq_38441207/article/details/88635326
正则表达式匹配:
https://blog.csdn.net/qq_38441207/article/details/88781517
表示数值的字符串:
https://blog.csdn.net/qq_38441207/article/details/88816455
字符流中第一个不重复的字符:
https://blog.csdn.net/qq_38441207/article/details/88816497

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值