博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode] Anagrams
阅读量:7040 次
发布时间:2019-06-28

本文共 1303 字,大约阅读时间需要 4 分钟。

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

输入一个字符串数组,返回所有回文构词法(anagrams)的字符串,所谓回文构词法就是指一系列单词具有相同的字母,但是字母的顺序不同例如listen和silent。

方法是首先对每个字符串进行排序,使用map字典,当首次遇到这个排序后字符串A的时候,把A与其下标存入map中。当再次遇到字符串A时,把A的下标的A的原字符串(未经排序)存入vector中,并把map中A的值置为-1,防止重复计算。然后再把这次遇到的字符串的原串存入结果中。

map中有一个很有用的函数count,他的返回值只有0和1,表示map中是否存在这个key,如果存在返回1,如果不存在则返回0。是一个很好用的函数。

代码如下:

1 class Solution { 2 public: 3     vector
anagrams(vector
&strs) { 4 vector
tmp = strs; 5 map
dic; 6 vector
res; 7 for( int i = 0 ; i < tmp.size() ; i++ ) 8 { 9 sort(tmp[i].begin(), tmp[i].end());10 if( dic.count(tmp[i]) == 0 )11 {12 dic[tmp[i]] = i;13 }14 else15 {16 if( dic[tmp[i]] != -1 )17 {18 res.push_back(strs[dic[tmp[i]]]);19 dic[tmp[i]] = -1;20 }21 res.push_back(strs[i]);22 }23 }24 return res;25 }26 };

 

 

转载于:https://www.cnblogs.com/jostree/p/3699891.html

你可能感兴趣的文章
架构师速成4.8-幼儿园书单资料推荐
查看>>
MySQL-Proxy实现读写分离部署文档
查看>>
For Update
查看>>
Hyper-V 之03 创建iSCSI存储和故障转移群集
查看>>
如何成为一名架构师?
查看>>
我的友情链接
查看>>
nfs failed, reason given by server: Permission denied的离奇解决
查看>>
2018 1.21测试
查看>>
DFS与BFS对比
查看>>
dedeCMS php语法在模版中的应用
查看>>
sublime 安装ctag 实现函数跳转
查看>>
sshd问题:A protocol error occurred. Change of username or service not allowed
查看>>
jQuery开发者眼中的AngularJS
查看>>
【DAY9】 关于多线程熊吃蜜Demo1的作业实验
查看>>
Python实现多属性排序
查看>>
nginx 访问日志分析
查看>>
RabbitMQ之消息确认机制(事务+Confirm)
查看>>
给出一个数组,计算数组中少了哪个数据的实现
查看>>
USB-232卡 配置
查看>>
C#窗体程序皮肤设置
查看>>