平面图网站,网站开发外文参考文献,公众号开发平台官网,古蔺中国建设银行网站文章目录1. 题目2. 解题1. 题目
给定一个字符串#xff0c;对该字符串可以进行 “移位” 的操作#xff0c;也就是将字符串中每个字母都变为其在字母表中后续的字母#xff0c;比如#xff1a;“abc” - “bcd”。这样#xff0c;我们可以持续进行 “移位” 操作对该字符串可以进行 “移位” 的操作也就是将字符串中每个字母都变为其在字母表中后续的字母比如“abc” - “bcd”。这样我们可以持续进行 “移位” 操作从而生成如下移位序列
abc - bcd - ... - xyz给定一个包含仅小写字母字符串的列表将该列表中所有满足 “移位” 操作规律的组合进行分组并返回。
示例
输入[abc, bcd, acef, xyz, az, ba, a, z]
输出
[[abc,bcd,xyz],[az,ba],[acef],[a,z]
]
解释可以认为字母表首尾相接所以 z 的后续为 a
所以 [az,ba] 也满足 “移位” 操作规律。来源力扣LeetCode 链接https://leetcode-cn.com/problems/group-shifted-strings 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
都转成以a开头的字符串
class Solution {
public:vectorvectorstring groupStrings(vectorstring strings) {unordered_mapstring,vectorstring m;string key;for(string s : strings){key s;int dis s[0]-a;for(int i 0; i key.size(); i)key[i] (key[i]-dis26)%26;m[key].push_back(s);}vectorvectorstring ans(m.size());int i 0;for(auto it m.begin(); it ! m.end(); it)ans[i] it-second;return ans;}
};8 ms 7.8 MB 长按或扫码关注我的公众号一起加油、一起学习进步