当前位置: 首页 > news >正文

leetcode刷题日记——单词规律

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 题目要求判断字符串 s 中的单词是否按照 pattern 这种模式排列
  • 具体思路和 205. 同构字符串基本一致,可以通过 hash 存储来实现
  • 思路二,通过字符串反推 pattern,如果一致,则遵循相同规律,否则不遵循
  • 思路二存在一个问题,pattern 中的字符可能并非按照顺序规律来分配的
  • 例如
    在这里插入图片描述
  • 代码如下
bool wordPattern(char* pattern, char* s) {int word_count = 0;char* word = strtok(s, " ");char** words = (char**)malloc(strlen(pattern) * sizeof(char*));while (word != NULL) {if(word_count >= strlen(pattern)) return false;words[word_count++] = word;word = strtok(NULL, " ");}char* s_pattern = (char*)malloc(word_count + 1);s_pattern[word_count] = '\0';char current_char = 'a'; char** word_to_char = (char**)malloc(word_count * sizeof(char*));for (int i = 0; i < word_count; i++) {bool found = false;for (int j = 0; j < i; j++) {if (strcmp(words[i], words[j]) == 0) {s_pattern[i] = s_pattern[j];found = true;break;}}if (!found) {s_pattern[i] = current_char++;}}for (int i = 0; i < word_count; i++) {if (s_pattern[i] != pattern[i]) {return false;}}return true;
}

[ 官方题解 ]:

  • 方法一:哈希表;以下对应 Python 3 的代码
class Solution:def wordPattern(self, pattern: str, s: str) -> bool:word2ch = dict()ch2word = dict()words = s.split()if len(pattern) != len(words):return Falsefor ch, word in zip(pattern, words):if (word in word2ch and word2ch[word] != ch) or (ch in ch2word and ch2word[ch] != word):return Falseword2ch[word] = chch2word[ch] = wordreturn True

相关文章:

  • webgl入门实例-11模型矩阵 (Model Matrix)基本概念
  • Unity粒子特效打包后不显示
  • FP16、FP32 及全系列浮点格式全解析:从半精度到四倍精度
  • IDEA 2025.1更新-AI助手试用和第三方模型集成方案
  • 2025年GitHub平台上的十大开源MCP服务器汇总分析
  • 【AI飞】AutoIT入门七(实战):python操控autoit解决csf视频批量转换(有点难,AI都不会)
  • 如何下载适用于Docker环境的Google Chrome浏览器【镜像使用方法】
  • RT-Thread RTThread studio 初使用
  • osgb和obj格式互转
  • 计算机视觉---相机标定
  • Oracle之数据库对象加连表查询
  • 前端 实现文字打字效果(仿AI)
  • 三维点拟合直线ransac c++
  • C/C++中获取或处理时间节点方法
  • UWP特性分析
  • 软件招标评审模板
  • OpenCV day6
  • 责任链模式:从 Sentinel 流控到审批流程的链式处理
  • 什么是Netty
  • 常见免杀框架的使用(3款)---【AniYaGUI1.2.0、AV_Evasion_Tool掩日、FoxBypass_V1.0】
  • 复旦大学校友夫妇一次性捐赠10亿元,成立学敏高等研究院
  • 马上评丨全面取消 “仅退款”,反内卷的必然
  • 广西一季度GDP为6833.92亿元,同比增长5.8%
  • 洛阳白马寺内的狄仁杰墓挂上公示牌争论尘埃落定?瀍河区文旅局称已确认
  • 告别国泰海通,黄燕铭下一站将加盟东方证券,负责研究业务
  • 图忆|温州旅沪先贤的家国情怀