classSolution { public: /* * @param start: a string * @param end: a string * @param dict: a set of string * @return: An integer */ intdistance(conststring &a, conststring &b){ int res = 0; for (int i = 0; i < a.length(); i++) { if (a[i] != b[i]) res++; } return res; }
intladderLength(string &start, string &end, unordered_set<string> dict){ // write your code here if (distance(start, end) == 1) return2;
vector<string> v; for (string s : dict) v.push_back(s);
queue<string> q; q.push(start); for (vector<string>::iterator it = v.begin(); it != v.end(); ) { if (*it == start) v.erase(it); else ++it; }
int res = 2; while(!q.empty()){ int n = q.size(); for (int i = 0; i < n; i++) {