外贸网站建设模板下载,wordpress themes free,个人新闻类网站模板免费下载,高密做网站哪家好代理2023-05-25每日一题
一、题目编号
差值数组不同的字符串
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个字符串数组 words #xff0c;每一个字符串长度都相同#xff0c;令所有字符串的长度都为 n 。
每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 …2023-05-25每日一题
一、题目编号
差值数组不同的字符串
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个字符串数组 words 每一个字符串长度都相同令所有字符串的长度都为 n 。
每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 差值整数数组 difference[i] 其中对于 0 j n - 2 有 difference[i][j] words[i][j1] - words[i][j] 。注意两个字母的差值定义为它们在字母表中 位置 之差也就是说 ‘a’ 的位置是 0 ‘b’ 的位置是 1 ‘z’ 的位置是 25 。
比方说字符串 “acb” 的差值整数数组是 [2 - 0, 1 - 2] [2, -1] 。
words 中所有字符串 除了一个字符串以外 其他字符串的差值整数数组都相同。你需要找到那个不同的字符串。
请你返回 words中 差值整数数组 不同的字符串。
四、解题代码
class Solution {mapvectorint, int hash;
public:string oddString(vectorstring words) {string s;int n words.size();vectorvectorint res;res.resize(n1);for(int i 0; i n; i){for(int j 0; j words[i].size() - 1; j){res[i].push_back(words[i][j1] - words[i][j]);}hash[res[i]];}for(int i 0; i n; i){if(hash[res[i]] 1){return words[i];}}return ;}
};五、解题思路
(1) 在题目中有描述除了一个字符串以外找到那个不同的字符串这样的字样我们考虑到的是用哈希表来进行统计。
(2) 下面所要做的就是如何先初始化这个哈希表用mapvector , int hash来表示前者表示差值整数数组后者表示个数。
(3) 遍历字符串数组遍历每一个字符串求出每一个字符串的差值整数数组然后在哈希表中自增计数。(用一个res数组保存每一个下标的差值整数数组
(4) 最后遍历res数组如果对应的下标的差值整数数组在哈希表中的个数为1个那么就返回该下标对应的字符串即可。