当前位置:首页>Word>单词方块 Word Square

单词方块 Word Square

  • 2026-04-07 10:38:41
单词方块 Word Square

先吃饭吧。

Given an array of unique strings words, return all the word squares you can build from words. The same word from wordscan be used multiple times. You can return the answer in any order.

A sequence of strings forms a valid word square if the kth row and column read the same string, where 0 <= k < max(numRows, numColumns).

  • For example, the word sequence ["ball","area","lead","lady"] forms a word square because each word reads the same both horizontally and vertically.

Example 1:

Input: words = ["area","lead","wall","lady","ball"]Output: [["ball","area","lead","lady"],["wall","area","lead","lady"]]Explanation:The output consists of two word squares. The order of output does not matter (just the order of words in each word square matters).

重要约束:

  1. 所有单词长度一致,区分大小写,无重复单词。

  2. 要求第k行和第k列相同(严格结构对称)

  3. 每个位置可以自由选择单词,但是这些选择相互制约

矛盾的展开:

  1. 选择第一行单词,也决定了第一列的前缀

  2. 选择第二行单词时,必须同时满足第一列的前缀(r=0, c=0) ,和第二列的前缀((r=0, c=1) (r=1, c=0))

  3. 每一行选择都影响所有列的前缀构建

次要矛盾:

  1. 全局约束vs局部选择:每个单词看似局部,但影响全局所有列

  2. 指数搜索空间vs多项式时间:理论上指数级排列,需要高效剪枝

  3. 前缀匹配精确性vs回溯灵活性

矛盾的下放:

整体Word Square构建问题 

↓ 分解为 

逐行构建问题 

↓ 分解为   

每行选择时对每列前缀的匹配问题 

↓ 分解为 

每个前缀在字典中的存在性检查问题

矛盾的转化机制:

  1. 从结构约束到前缀约束:将网格对称性转化为每列前缀匹配要求

  2. 从全局检查到局部递推:每行只需保证当前所有列前缀有效,后续行继续验证

  3. 从穷举搜索到剪枝优化:通过前缀匹配提前排除无效分支

工具选择:Trie+Backtracking的必然性

为什么Backtracking是必要的?

  1. 问题本质是组合搜索:需要尝试所有可能的单词排列

  2. 选择具有后效性:当前选择影响后续选择空间

  3. 需要探索和回溯:错误选择需要撤销,尝试其他可能性

为什么Trie是关键的优化武器?

  1. 快速前缀检查:Word Square构建过程中核心操作是"给定前缀,有哪些单词匹配"

  2. 空间换时间:预构建Trie避免每次线性搜索字典

  3. 支持增量更新:随着网格构建,前缀逐渐变长,Trie支持高效扩展

矛盾的初始解决尝试:朴素Backtracking

def backtrack(step, grid, words):    if step == n:  # 完成所有行        if check_columns(grid):  # 检查所有列是否也是单词            add_solution(grid)        return    for word in words:        if valid_prefixes(step, grid, word):  # 检查当前选择是否保持所有前缀有效            grid[step] = word            backtrack(step+1, grid, words)            grid[step] = None  # 回溯

问题:每次检查所有列前缀需要O(n)时间,且需要线性搜索匹配单词

矛盾未充分转化:检查效率低下

矛盾的有效转化:Trie优化的Backtracking

from collections import defaultdictfrom typing import Listclass TrieNode:    def __init__(self):        self.children = defaultdict(TrieNode)        self.word_indices = []  # 存储以当前节点为前缀的单词索引class WordSquareSolver:    def __init__(self, words: List[str]):        self.words = words        self.n = len(words[0])  # 单词长度,也是网格大小        self.trie = self._build_trie()        self.result = []    def _build_trie(self):        """构建前缀树,每个节点存储以该节点为前缀的单词索引"""        root = TrieNode()        for idx, word in enumerate(self.words):            node = root            node.word_indices.append(idx)  # 空字符串是所有单词的前缀            for ch in word:                node = node.children[ch]                node.word_indices.append(idx)        return root    def _get_words_with_prefix(self, prefix: str) -> List[int]:        """获取具有指定前缀的所有单词索引"""        node = self.trie        for ch in prefix:            if ch not in node.children:                return []            node = node.children[ch]        return node.word_indices    def _has_prefix(self, prefix: str) -> bool:        """检查前缀是否存在"""        node = self.trie        for ch in prefix:            if ch not in node.children:                return False            node = node.children[ch]        return True    def find_word_squares(self) -> List[List[str]]:        """查找所有 word squares"""        if not self.words or not self.words[0]:            return []        # 初始化:每列的前缀都是空字符串        col_prefixes = ["" for _ in range(self.n)]        used = [False] * len(self.words)  # 标记单词是否使用过        current_rows = []  # 当前已放置的行        def backtrack(step: int):            """递归回溯            step: 当前要放置的行索引(0-based)            """            if step == self.n:                # 检查所有列是否都是有效单词                if all(self._has_prefix(col_prefixes[j]) and                        any(self.words[idx] == col_prefixes[j]                            for idx in self._get_words_with_prefix(col_prefixes[j]))                        for j in range(self.n)):                    self.result.append(current_rows[:])                return            # 获取第step列当前前缀的所有可能单词            col_prefix = col_prefixes[step]            candidate_indices = self._get_words_with_prefix(col_prefix)            for idx in candidate_indices:                if used[idx]:                    continue                word = self.words[idx]                # 计算新的列前缀                new_prefixes = col_prefixes[:]  # 创建副本                for j in range(self.n):                    new_prefixes[j] = new_prefixes[j] + word[j]                # 检查所有新前缀是否有效(即是否存在以该前缀开头的单词)                if all(self._has_prefix(new_prefixes[j]) for j in range(step + 1, self.n)):                    used[idx] = True                    current_rows.append(word)                    # 保存旧前缀,递归后恢复                    old_prefixes = col_prefixes[:]                    col_prefixes[:] = new_prefixes                    backtrack(step + 1)                    # 回溯                    col_prefixes[:] = old_prefixes                    current_rows.pop()                    used[idx] = False        backtrack(0)        return self.resultclass Solution:    def wordSquares(self, words: List[str]) -> List[List[str]]:        """主函数"""        if not words:            return []        solver = WordSquareSolver(words)        return solver.find_word_squares()# 测试代码if __name__ == "__main__":    # 示例测试    words1 = ["area","lead","wall","lady","ball"]    words2 = ["abat","baba","atan","atal"]    sol = Solution()    print("测试1:")    result1 = sol.wordSquares(words1)    for square in result1:        print(square)    print("\n测试2:")    result2 = sol.wordSquares(words2)    for square in result2:        print(square)    # 性能测试:n=4,单词较多的情况    words3 = [        "rose", "oven", "send", "ends",        "nose", "ones", "done", "node",        "dose", "dots", "stop", "tops"    ]    print("\n测试3:")    result3 = sol.wordSquares(words3)    print(f"找到 {len(result3)} 个 word squares")    for square in result3[:3]:  # 只显示前3个        print(square)

关键优化:

  • Trie实现get_words_with_prefix():O(L)时间获取所有匹配单词,L为前缀长度

  • has_prefix():O(L)时间检查前缀是否存在

  • 提前剪枝:构建过程中一旦发现某列前缀不存在,立即回溯

复杂度分析中的矛盾体现

时间复杂度的矛盾:

  • 理论最坏:O((N)^n) 其中N是单词数,n是网格大小

  • 实际优化后:通过前缀剪枝大幅减少搜索分支

  • 矛盾转化:从指数复杂度转化为接近多项式的实际表现

空间复杂度的矛盾:

  • Trie空间开销:存储所有单词及其前缀

  • 回溯栈空间:递归深度n

  • 矛盾统一:空间换时间,Trie的O(总单词长度)空间换取指数级时间优化

实践指导:面试中展示如下思考过程

1. 理解问题:Word Square的定义和约束

2. 分析矛盾:对称性要求 vs 单词选择自由

3. 探索解法:

   a. 朴素回溯:尝试所有排列,检查对称性(太慢)

   b. 优化1:在构建过程中检查列前缀(需要高效前缀查询)

   c. 优化2:使用Trie加速前缀查询

   d. 优化3:提前剪枝,一旦前缀无效立即回溯

4. 实现细节:Trie设计,递归参数,边界条件

5. 复杂度分析:时间/空间权衡

点个喜欢吧

END

点击蓝字

关注我

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-09 15:14:11 HTTP/2.0 GET : https://h.sjds.net/a/464009.html
  2. 运行时间 : 0.302581s [ 吞吐率:3.30req/s ] 内存消耗:4,461.19kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=31ea491880fb0fc78fdbe72bbc881422
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000905s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001368s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000692s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004933s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001354s ]
  6. SELECT * FROM `set` [ RunTime:0.011849s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001520s ]
  8. SELECT * FROM `article` WHERE `id` = 464009 LIMIT 1 [ RunTime:0.002832s ]
  9. UPDATE `article` SET `lasttime` = 1775718852 WHERE `id` = 464009 [ RunTime:0.006282s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.001627s ]
  11. SELECT * FROM `article` WHERE `id` < 464009 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.064594s ]
  12. SELECT * FROM `article` WHERE `id` > 464009 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.005175s ]
  13. SELECT * FROM `article` WHERE `id` < 464009 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006197s ]
  14. SELECT * FROM `article` WHERE `id` < 464009 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001802s ]
  15. SELECT * FROM `article` WHERE `id` < 464009 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.017235s ]
0.306495s