From 27c1240df74a6e52fe9d8f9af9dc3c90da3dd2d6 Mon Sep 17 00:00:00 2001 From: Ruoxin Zhao Date: Wed, 8 Dec 2021 14:09:53 -0600 Subject: [PATCH] Add the solution of LeetCode Algorithm question 127 Word ladder --- LeetCode/127.Word-ladder.cpp | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 LeetCode/127.Word-ladder.cpp diff --git a/LeetCode/127.Word-ladder.cpp b/LeetCode/127.Word-ladder.cpp new file mode 100644 index 0000000..46ff590 --- /dev/null +++ b/LeetCode/127.Word-ladder.cpp @@ -0,0 +1,40 @@ +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordList) { + //Use a typical implementation of BFS with a queue + + queue que1; + que1.push(beginWord); + int dist=0; + + while(!que1.empty()) { + dist+=1; + int l=que1.size(); + for(int i=0; i::iterator itr=wordList.begin(); itr!=wordList.end(); ++itr) { + int d=wordDist(que1.front(), *itr); + if(d>1) continue; + if(endWord.compare(*itr)==0) return dist+1; + que1.push(*itr); + wordList.erase(itr); + --itr; + } + que1.pop(); + } + } + + return 0; + } + +private: + //A function for computing distance between words + int wordDist(string s1, string s2) { + int n=min(s1.length(), s2.length()); + int dist=0; + + for(int i=0; i