【增强的strstr】Python

本文介绍了在2023年华为OD机试B卷中的一个Python题目——增强的strstr算法,涉及正则表达式的替换和字符串搜索功能。通过解题思路和两个实现版本(solve和solve0),作者还分析了两种方法的时间性能。
摘要由CSDN通过智能技术生成

 难度指数:⭐⭐⭐⭐⭐

知识点:re

算法参考:

2023华为od机试B卷【增强的strstr】Python

# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
import functools
import sys
from collections import Counter, defaultdict
import copy
from itertools import permutations
import re
import math
import sys
 
str1 = input()
str2 = input()
str2 = re.sub(r'\[(.*?)\]', r'[\1]', str2)
pattern = re.compile(str2)
if pattern.search(str1) is None:
    print(-1)
else:
    print(pattern.search(str1).start())

Mine:

idea

代码实现

from time import time
import re
    
def solve():

    return 0

def solve0():
    d2 = re.sub(r'/[(.*?)/]', r'(/1)', d)
    pattern = re.compile(d2)
    if pattern.search(s):
        res = pattern.search(s).start()
    else:
        res = -1
    return res
 
T = 1
while T:
    s = input()
    d = input()
    t1 = time() 
    res = solve()
    t2 = time()
    res0 = solve0()
    t3 = time()
    print(res, res0)
    print(t3 - t2, t2 - t1)
    T -= 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值