#oda0095. 字符串通配符【B卷 100分】-字符串

題目描述

問題描述:在計算機中,通配符一種特殊語法,廣泛應用于文件搜索、數據庫、正則表達式等領域。現要求各位實現字符串通配符的算法。

要求:

實現如下2個通配符:

  • *?:匹配0個或以上的字符(注:能被*和?匹配的字符僅由英文字母和數字0到9組成,下同)
  • :匹配1個字符

注意:匹配時不區分大小寫。

輸入描述

通配符表達式; 一組字符串。

輸出描述

返回不區分大小寫的匹配結果,匹配成功輸出true,匹配失敗輸出false。

用例1

輸入

te*t
te123t

輸出

true

說明

“*”轉換為[0-9a-z]{0,},正則表達式:te[0-9a-z]{0,}t

匹配說明: “te” + 任意多個字母數字 + “t”,匹配“te123t”。

用例2

輸入

**soft
nezhasoft

輸出

true

解答

#【注】1.處理連續*;2.字符串轉義# 獲取輸入并將字母轉換為小寫
import repattern=input().lower()
text=input().lower()# 構造正則表達式
regex="^" # 初始化正則表達式,^表示字符串開始位置
star_seen=False #用于避免重復處理連續*
for c in pattern:if c=='*': # 遇到通配符*if not star_seen:regex += "[0-9a-z]{0,}" # 匹配0個或多個數字/字母的表達式star_seen=True # 設置標志為已處理*elif c=='?':regex += "[0-9a-z]{1}"star_seen = Falseelse: # 普通字符regex += re.escape(c)star_seen = False
regex += "$"   # 添加$表示字符串的結束位置#使用正則表達式進行匹配
if re.fullmatch(regex,text):print("true")
else:print("false")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914404.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914404.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914404.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面向對象設計原則

面向對象:是一種編程思想,面向過程是關注實現的步驟,每個步驟定義一個函數,調用函數執行即可。面向對象關注的是誰來執行,把具有相同屬性和行為的一類事物進行抽象成類,然后再通過實例化出一個個具體的對象…

Hyperledger Fabric深入解讀:企業級區塊鏈的架構、應用與未來

一、引言:企業級區塊鏈的標桿Hyperledger Fabric是Linux基金會主導的開源項目,專為企業級應用設計,以模塊化架構、許可鏈機制和隱私保護為核心,廣泛應用于金融、供應鏈、醫療等領域。相較于公有鏈(如以太坊&#xff09…

從0開始學習R語言--Day45--Hausman檢驗

當我們在探究數據本身是否和變量相關時,往往都會對這兩者進行回歸分析,控制一下變量來看看趨勢走向。但其實在分析前,我們可以先嘗試做Hausman檢驗,這可以幫助我們判斷數據的變化到底是因為變量不一樣了還是因為自己的個體效應所以…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第九課——圖像插值的FPGA實現

(本系列只需要modelsim即可完成數字圖像的處理,每個工程都搭建了全自動化的仿真環境,只需要雙擊top_tb.bat文件就可以完成整個的仿真,大大降低了初學者的門檻!!!!如需要該系列的工程…

Android事件分發機制完整總結

一、核心概念事件分發的本質Android事件分發采用責任鏈模式,事件從Activity開始,依次經過ViewGroup和View。整個機制只有一個入口:dispatchTouchEvent方法。onInterceptTouchEvent和onTouchEvent都不是獨立的事件入口,而是被dispa…

【論文閱讀】AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking

AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking3. AdaReasoner3.1 動機3.2 問題定義3.3 動作選擇過程3.3.1 動作空間定義3.3.2 動作選擇3.4 探索策略3.5 強化學習訓練3.5.1 訓練算法3.5.2 目標函數3.5.3 損失函數AdaReasoner: Adaptive Reasoning Enables Mo…

深入了解Modbus TCP:工業通信的“通用語言”

目錄 簡介一、Modbus TCP的“前世今生”二、Modbus TCP的核心特點三、Modbus TCP的工作原理1. 報文結構2. 功能碼四、Modbus TCP的應用場景五、使用Modbus TCP的注意事項六、總結簡介 在工業自動化的世界里,不同設備之間的“對話”至關重要。從PLC(可編程邏輯控制器)到傳感…

基于Selenium和FFmpeg的全平臺短視頻自動化發布系統

一、項目背景與概述在當今短視頻營銷盛行的時代,許多企業和個人需要同時管理多個短視頻平臺賬號。手動上傳視頻到抖音、快手、小紅書等平臺不僅效率低下,而且容易出錯。本文將介紹一個基于Python的自動化短視頻處理與發布系統,它能夠&#xf…

技術演進中的開發沉思-31 MFC系列:類層次結構

提及MFC,不得不說他的類層次。如果把 MFC 框架比作是座精密的鐘表,那類層次結構便是其內部咬合的齒輪組。每個類都有明確的 “家族地位”,既繼承著先輩的本領,又發展出獨特的專長。這種層級分明的設計,讓 Windows 編程…

2023.05.06 更新前端面試問題總結(12道題)

2023.05.04 - 2023.05.06 更新前端面試問題總結(12道題) 獲取更多面試相關問題可以訪問 github 地址: https://github.com/pro-collection/interview-question/issues gitee 地址: https://gitee.com/yanleweb/interview-question/issues 目錄&#xff1…

【網絡】Linux 內核優化實戰 - net.ipv4.tcp_keepalive_intvl

目錄1. TCP Keep-Alive 機制回顧2. 參數作用3. 參數取值與影響4. 使用場景與建議5. 相關參數6. 如何配置該參數臨時生效(重啟后失效):永久生效(需重啟或重載配置):7. 性能優化建議8. 監控與故障排查net.ipv…

20250710解決KickPi的K7的SDK編譯異常:rk3576-android14.0-25250704.tar.gz【降低BUILD_JOBS】

20250710解決KickPi的K7的SDK編譯異常:rk3576-android14.0-25250704.tar.gz【降低BUILD_JOBS】 2025/7/10 20:59緣起:KickPi的K7的SDK編譯異常:rk3576-android14.0-25250704.tar.gzZ:\14TB\SDK\rk3576_data\1-SDK軟件源碼\Android14\20250704…

《Java EE與中間件》實驗一 基于MyBatis的留言本

目 錄 一、實驗目的和要求 1、實驗目的 2、實驗要求 二、實驗實現思路及步驟 1、實驗思路 2、實驗步驟 3、實驗方案 三、主要開發工具 四、實驗效果及實現代碼 1、留言本數據庫構建實現 (1)建立javaee-project數據庫 (2&#xf…

ARM匯編編程(AArch64架構) - 第14課:安全擴展(ARM TrustZone)

目錄1. TrustZone基礎概念1.1 安全擴展架構1.2 關鍵組件2. 世界切換機制2.1 狀態切換流程2.2 關鍵寄存器配置3. SMC調用實現3.1 調用規范3.2 完整調用流程4. 實戰練習4.1 實驗:實現雙世界通信4.2 調試技巧1. TrustZone基礎概念 1.1 安全擴展架構 startuml rectang…

OpenCV哈希算法------Marr-Hildreth 邊緣檢測哈希算法

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 該類實現了 Marr-Hildreth 邊緣檢測哈希算法(Marr-Hildreth Hash),用于圖像相似性比較。它基于 Marr-Hildreth …

【git#5】遠程操作 標簽管理

📃個人主頁:island1314 ?? 歡迎關注:👍點贊 👂🏽留言 😍收藏 💞 💞 💞 生活總是不會一帆風順,前進的道路也不會永遠一馬平川,如何面…

如何使用 Python 刪除 Excel 中的行、列和單元格 – 詳解

目錄 開發環境準備 使用 Python 刪除 Excel 表格中的行 刪除特定行 刪除空白行 刪除含指定數據的行 使用 Python 刪除 Excel 表格中的列 刪除特定列 刪除空白列 刪除含指定數據的列 使用 Python 刪除 Excel 中的單元格并自動移動剩余內容 刪除特定單元格 刪除空白單…

箭頭函數(Arrow Functions)和普通函數(Regular Functions)

在 JavaScript 中,箭頭函數(Arrow Functions)和普通函數(Regular Functions)有以下主要區別:1. 語法箭頭函數:使用 > 語法,更簡潔,可省略 function 和 return&#xf…

Spring Boot 配置注解處理器 - spring-boot-configuration-processor

前言 在 Spring Boot 開發中,配置屬性的管理是構建企業級應用的核心環節。Spring Boot 通過 ConfigurationProperties 注解提供了一種類型安全的方式,將配置文件中的屬性綁定到 Java 對象中。然而,開發者在使用過程中常會遇到配置屬性無自動補…

java: DDD using oracle 21c

項目結構:domain:/*** encoding: utf-8* 版權所有 2025 ©涂聚文有限公司 * 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎* 描述:* Author : geovindu,Geovin Du 涂聚文.* IDE : IntelliJ IDEA 2024…