zoukankan      html  css  js  c++  java
  • 127.Word Ladder

    class Solution {
    public:
        int ladderLength(string start, string end, unordered_set<string> &dict) {
            // IMPORTANT: Please reset any member data you declared, as
            // the same Solution instance will be reused for each test case.
            //BFS遍历找到的第一个匹配就是最短转换,空字符串是层与层之间的分隔标志
            queue<string> Q;
            Q.push(start); Q.push("");
            int res = 1;
            while(Q.empty() == false)
            {
                string str = Q.front();
                Q.pop();
                if(str != "")
                {
                    int strLen = str.length();
                    for(int i = 0; i < strLen; i++)
                    {
                        char tmp = str[i];
                        for(char c = 'a'; c <= 'z'; c++)
                        {
                            if(c == tmp)continue;
                            str[i] = c;
                            if(str == end)return res+1;
                            if(dict.find(str) != dict.end())
                            {
                                Q.push(str);
                                dict.erase(str);
                            }
                        }
                        str[i] = tmp;
                    }
                }
                else if(Q.empty() == false)
                {//到达当前层的结尾,并且不是最后一层的结尾
                    res++;
                    Q.push("");
                }
            }
            return 0;
        }
    };
    
  • 相关阅读:
    读后感四
    读后感五
    公文流转系统
    统计文件中单词的频率,给出前N的单词
    读入一个文件输出每个字母的频率
    小工到专家
    从小工到专家读后感
    动手动脑 类与对象
    海芋
    棕竹
  • 原文地址:https://www.cnblogs.com/smallredness/p/10677258.html
Copyright © 2011-2022 走看看