当前位置: 首页 > 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】
  • 亚马逊拟为商品标注“关税成本”,特朗普致电贝索斯讨说法
  • 复星医药换帅:陈玉卿接棒吴以芳任董事长,吴以芳改任复星国际执行总裁
  • 西班牙葡萄牙突发全国大停电,欧洲近年来最严重停电事故何以酿成
  • 马上评|“AI神医宇宙”欺诈,连演员都不请了
  • 核电开闸!国常会核准10台新机组,拉动超2000亿投资,新项目花落谁家?
  • 从地下金库到地上IP,看海昏汉文化“最美变装”