212、【圖論】字符串接龍(Python)

題目描述

在這里插入圖片描述
在這里插入圖片描述

題目鏈接:110. 字符串接龍

代碼實現

import collectionsn = int(input())
beginStr, endStr = input().split()
strList = [input() for _ in range(n)]deque = collections.deque()		# 使用隊列遍歷結點
deque.append([beginStr, 1])		# 存儲當前字符串和遍歷的到第幾個結點
visited = set()					# 存儲是否訪問過該節點,訪問過則跳過
visited.add(beginStr)while deque:word, path = deque.popleft()    # 當前字母和目標字母只相差一個時候,跳出if sum(1 for a, b in zip(word, endStr) if a != b) == 1:print(path + 1)exit()# 遍歷字典for next_word in strList:# 下一個字母被構建過邊(相差一個時候,構建出邊),則跳過if next_word in visited:continue                # 當前字母和下一個字母只相差一個時候,添加遍歷cnt_distinct = sum(1 for a, b in zip(word, next_word) if a != b)if cnt_distinct == 1:visited.add(next_word)deque.append([next_word, path + 1])
# 遍歷完所有節點,均為找到,則跳出            
print(0)

參考文章:超詳細的層層遞進三種優化及復雜度分析,附雙向 BFS 的 PPT, (C++ / Python / Java / Kotlin)

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

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

相關文章

操作系統導論——第19章 分頁:快速地址轉換(TLB)

使用分頁作為核心機制來實現虛擬內存,可能會帶來較高的性能開銷。使用分頁,就要將內存地址空間切分成大量固定大小的單元(頁),并且需要記錄這些單元的地址映射信息。因為這些映射信息一般存儲在物理內存中,…

使用Apache POI(Java)創建docx文檔和表格

1、引入poi 依賴組件 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.0.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId>&…

python cv2 安裝

在Python中安裝opencv-python&#xff08;即OpenCV庫&#xff09;&#xff0c;通常有兩種方法&#xff1a;使用pip命令或通過conda&#xff08;如果你使用的是Anaconda或Miniconda&#xff09;。以下是詳細的步驟&#xff1a; 方法1&#xff1a;使用pip 打開你的命令行界面&am…

讀者、寫者問題優化

#include <stdio.h> #include <time.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <semaphore.h> #define NUM_READERS 5 #define NUM_WRITERS 5 // 定義信號量和全局變量 sem_t sdata, srcount; int rea…

如何通過前端表格控件實現自動化報表?1

背景 最近伙伴客戶的項目經理遇見一個問題&#xff0c;他們在給甲方做自動化報表工具&#xff0c;項目已經基本做好了&#xff0c;但拿給最終甲方&#xff0c;業務人員不太買賬&#xff0c;項目經理為此也是天天抓狂&#xff0c;沒有想到合適的應對方案。 現階段主要面臨的問…

RabbitMQ 優先級隊列詳解

本文是博主在記錄使用 RabbitMQ 在執行業務時遇到的問題和解決辦法&#xff0c;因此查閱了相關資料并做了以下記載&#xff0c;記錄了優先級隊列的機制和使用要點。 本文為長文&#xff0c;詳細介紹了相關的知識&#xff0c;可作為學習資料看。 文章目錄 一、優先級隊列介紹1、…

代理模式簡述

目錄 一、主要角色 二、類型劃分 三、靜態代理 示例 缺點 四、動態代理 JDK動態代理 示例 缺點 CGLib動態代理 導入依賴 示例 五、Spring AOP 代理模式是一種結構型設計模式&#xff0c;通過代理對象控制對目標對象的訪問&#xff0c;可在不改變目標對象情況下增強…

每日一題——云服務計費問題

云服務計費問題&#xff08;哈希表 排序&#xff09;| 附詳細 C源碼解析 一、題目描述二、輸入描述三、輸出描述四、樣例輸入輸出輸入示例&#xff1a;輸出示例&#xff1a;說明&#xff1a; 五、解題思路分析六、C實現源碼詳解&#xff08;完整&#xff09;七、復雜度分析 一…

【JVM】運行時數據區域

文章目錄 1. 程序計數器補充 2. 虛擬機棧2.1 棧幀1. 局部變量表2. 操作數棧3. 動態鏈接4. 方法返回地址補充 3. 本地方法棧4. 堆5. 方法區靜態常量池&#xff08;Class常量池&#xff09;運行時常量池字符串常量池&#xff08;1&#xff09;位置變化&#xff08;2&#xff09;放…

day28圖像處理OpenCV

文章目錄 一、圖像預處理4 邊緣填充4.1 邊界復制&#xff08;BORDER_REPLICATE&#xff09;4.2 邊界反射&#xff08;BORDER_REFLECT&#xff09;4.3 邊界反射101&#xff08;BORDER_REFLECT_101&#xff09;4.4 邊界常數&#xff08;BORDER_CONSTANT&#xff09;4.5 邊界包裹&…

C++ Json-Rpc框架-3項目實現(2)

一.消息分發Dispatcher實現 Dispatcher 就是“消息分發中樞”&#xff1a;根據消息類型 MType&#xff0c;把消息派發給對應的處理函數&#xff08;Handler&#xff09;執行。 初版&#xff1a; #pragma once #include "net.hpp" #include "message.hpp"n…

C++算法優化實戰:破解性能瓶頸,提升程序效率

C算法優化實戰&#xff1a;破解性能瓶頸&#xff0c;提升程序效率 在現代軟件開發中&#xff0c;算法優化是提升程序性能的關鍵手段之一。無論是在高頻交易系統、實時游戲引擎&#xff0c;還是大數據處理平臺&#xff0c;算法的高效性直接關系到整體系統的性能與響應速度。C作…

【PostgreSQL教程】PostgreSQL 特別篇之 語言接口連接PHP

博主介紹:?全網粉絲22W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。 感興趣的可…

山東大學軟件學院創新項目實訓開發日志(12)之將對話記錄保存到數據庫中

在之前的功能開發中&#xff0c;已經成功將deepseekAPI接口接入到springbootvue項目中&#xff0c;所以下一步的操作是將對話和消息記錄保存到數據庫中 在之前的開發日志中提到數據庫建表&#xff0c;所以在此刻需要用到兩個表&#xff0c;conversation表和message表&#xff…

Spring-注解編程

注解基礎概念 1.什么是注解編程 指的是在類或者方法上加入特定的注解(XXX) 完成特定功能的開發 Component public classXXX{} 2.為什么要講注解編程 1.注解開發方便 代碼簡潔 開發速度大大提高 2.Spring開發潮流 Spring2.x引入注解 Spring3.x完善注解 Springboot普及 推廣注解…

Dify智能體平臺源碼二次開發筆記(5) - 多租戶的SAAS版實現(2)

目錄 前言 用戶的查詢 controller層 添加路由 service層 用戶的添加 controller層 添加路由 service層-添加用戶 service層-添加用戶和租戶關系 驗證結果 結果 前言 完成租戶添加功能后&#xff0c;下一步需要實現租戶下的用戶管理。基礎功能包括&#xff1a;查詢租…

基于若依的ruoyi-vue-plus的nbmade-boot在線表單的設計(一)架構方面的設計

希望大家一起能參與我的新開源項目nbmade-boot: 寧波智能制造低代碼實訓平臺 主要目標是類似設計jeecgboot那樣的online表單功能,因為online本身沒有開源這部分代碼,而我設計這個是完全開源的,所以希望大家支持支持,開源不容易。 1、數據庫方面設計考慮 是在原來gen_table和…

WebFlux應用中獲取x-www-form-urlencoded數據的六種方法

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

[Python基礎速成]1-Python規范與核心語法

本系列旨在快速掌握Python&#xff0c;實現能夠快速閱讀和理解 Python 代碼&#xff0c;并在可查閱語法的情況下進行 AI 學習。 本篇先了解一下Python基礎知識。 本篇內容較菜鳥教程有所刪減、方便快速構建大綱&#xff0c;且加入了PEP 8規范說明等有助于理解和編寫代碼的說明。…

農民劇團的春天與改變之路

楊天義&#xff0c;男&#xff0c;1966年9月生&#xff0c;中共黨員&#xff0c;江西省吉安市吉水縣水南農民劇團團長。 楊天義從廢品收購起家&#xff0c;憑借自身的努力和奮斗&#xff0c;自籌資金100余萬元建設了水南鎮的第一座影劇院&#xff0c;組建了江西省吉安市吉水縣…