leetcode 2452. 距离字典两次编辑以内的单词 中等
给你两个字符串数组queries和dictionary。数组中所有单词都只包含小写英文字母且长度都相同。一次编辑中你可以从queries中选择一个单词将任意一个字母修改成任何其他字母。从queries中找到所有满足以下条件的字符串不超过两次编辑内字符串与dictionary中某个字符串相同。请你返回queries中的单词列表这些单词距离dictionary中的单词编辑次数不超过两次。单词返回的顺序需要与queries中原本顺序相同。示例 1输入queries [word,note,ants,wood], dictionary [wood,joke,moat]输出[word,note,wood]解释- 将 word 中的 r 换成 o 得到 dictionary 中的单词 wood 。 - 将 note 中的 n 换成 j 且将 t 换成 k 得到 joke 。 - ants 需要超过 2 次编辑才能得到 dictionary 中的单词。 - wood 不需要修改0 次编辑就得到 dictionary 中相同的单词。 所以我们返回 [word,note,wood] 。示例 2输入queries [yes], dictionary [not]输出[]解释yes 需要超过 2 次编辑才能得到 not 。 所以我们返回空数组。提示1 queries.length, dictionary.length 100n queries[i].length dictionary[j].length1 n 100所有queries[i]和dictionary[j]都只包含小写英文字母。分析因为数据量很小直接暴力对比 queries 数组中的单词与 dictionary 中的每个单词是否存在一个编辑次数小于等于 2 情况即可。class Solution { public: vectorstring twoEditWords(vectorstring queries, vectorstring dictionary) { int nqueries.size(),mdictionary.size(),lenqueries[0].length(); vectorstringans; for(int i0;in;i) { int cnt3; for(int j0;jmcnt2;j) { cnt0; for(int k0;klen;k) { if(queries[i][k]!dictionary[j][k])cnt; if(cnt2)break; } if(cnt2)ans.push_back(queries[i]); } } return ans; } };
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2551396.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!