首页 > 其他分享 >字母异位词分组

字母异位词分组

时间:2022-12-01 17:00:44浏览次数:71  
标签:std strs 异位 字母 int 分组 groups fingerprint size


class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
std::vector<std::vector<std::string>>groups;
if (strs.empty()) {
return groups;
}
groups.emplace_back(std::vector<std::string>{ strs[0] });
int size = strs.size();
for (int i = 1;i < size;i++) {
bool found = false;
for (auto &vec : groups) {
const std::string &first_str = vec[0];
if (is_anagram(first_str, strs[i])) {
vec.emplace_back(strs[i]);
found = true;
break;
}
}
if (!found) {
groups.emplace_back(std::vector<std::string>{ strs[i] });
}
}
return groups;
}
bool is_anagram(const std::string &one, const std::string &other) {
int size = one.size();
if (other.size() != size) {
return false;
}
int i = 0;
memset(fingerprint_, 0, sizeof(fingerprint_));
for (;i < size;i++) {
++fingerprint_[one[i] - 'a'];
}
for (i = 0;i < size;i++) {
--fingerprint_[other[i] - 'a'];
}
for (i = 0;i < size;i++) {
if (fingerprint_[one[i] - 'a']) {
return false;
}
}
return true;
}
private:
int fingerprint_[26];
};

字母异位词分组_i++

​https://github.com/wangzhicheng2013/leetcode/tree/main/leetcode​


标签:std,strs,异位,字母,int,分组,groups,fingerprint,size
From: https://blog.51cto.com/u_15899033/5902981

相关文章

  • (电商中需要定位需求)百度地图定位sdk集成,及城市列表展示,选择,搜索,26字母快速定位
    (电商中需要定位需求)百度地图定位sdk集成,及城市列表展示,选择,搜索,26字母快速定位下面集成步骤:主要还是依靠百度定位文档一步一步1,先去百度开发者平台,创建你的应用,根据你的......
  • DQL-聚合函数&分组和过滤-2022-12-1
    函数 count() avg() sum() max(0 min SELECTCOUNT(`studentname`)FROMstudent;--会忽略NULL值SELECTCOUNT(*)FROMstudent;--不......
  • C++ 字符串字母大小写转换
    C++ 字符串字母大小写转换使用algorithm,里面的tolower(转小写)toupper(转大写) #include<iostream>#include<string>usingnamespacestd;#include<algorithm> i......
  • 分组——题解
    分组题目背景大样例可在页面底部「附件」中下载。题目描述小C在了解了她所需要的信息之后,让兔子们调整到了恰当的位置。小C准备给兔子们分成若干个小组来喂恰当的......
  • Abby:tableau 分组显示客户购买次数
    效果图:  实现步骤: ......
  • 纪念品分组
    描述p{margin-bottom:0.21cm;}元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价......
  • 字母旋转游戏
                                   字母旋转游戏Description给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值......
  • 背包问题——分组背包
    分组背包1.定义分组背包,通俗的讲就是,给你N组物品,然后每一组你至多选择一个物品(也可以不选),每个物品都有自己的体积和价值,现在给你一个容里为M的背包,让你用这个背包装物......
  • 力扣 leetcode 813. 最大平均值和的分组
    问题描述给定数组nums和一个整数k。我们将给定的数组nums分成最多k个相邻的非空子数组。分数由每个子数组内的平均值的总和构成。注意我们必须使用nums数......
  • Oracle 分组统计,并显示百分比的实现
    需求:在分组统计的时候,显示每个分组所占的百分比效果图:实现代码:SELECTCOUNT(1)rs,100*round(COUNT(*)/SUM(COUNT(*))OVER(),4)||'%'FROMTB_USERtGROUPBYt.AREA......