当前位置: 首页 > news >正文

156:Ananagrams

Ananagrams


思路:对于每一个单词,先存入数组,然后标准化(小写加排序)后的单词的计数值加1,最后输出数组中计数位1的单词即可。

version 1(自己写的版本):

#include<iostream>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 100000;
string words[maxn];
map<string,int>dict;
string mylower(string s){
    for(int i = 0;i < s.size();i++)
        if(s[i] <  'a') s[i] += 32;
    sort(&s[0],&s[0] + s.size());
    return s;
}
int main(){
    string s,t;
    int cnt = 0;
    while(cin >> s && s[0] != '#'){
        t = mylower(s);
        words[cnt++] = s;
        dict[t]++;
    }
    sort(words,words + cnt);
    for(int i = 0;i < cnt;i++)
        if(dict[mylower(words[i])] == 1){
            cout<<words[i]<<endl;
        }
    return 0;
}

version 2(改成常引用,先找出单词后再排序):

#include<iostream>
#include<map>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
vector<string>words;
map<string,int>dict;
string sta(const string& s){
    string ans = s;
    for(int i = 0;i < s.size();i++)
        if(ans[i] <  'a') ans[i] += 32;
    sort(ans.begin(),ans.end());
    return ans;
}
int main(){
    string s;
    while(cin >> s && s[0] != '#'){
        words.push_back(s);
        dict[sta(s)]++;
    }
    vector<string>ans;
    for(int i = 0;i < words.size();i++)
        if(dict[sta(words[i])] == 1) ans.push_back(words[i]);
    sort(ans.begin(),ans.end());
    for(int i = 0;i < ans.size();i++)
        cout<<ans[i]<<endl;
    return 0;
}

转载于:https://www.cnblogs.com/JingwangLi/p/10202743.html

相关文章:

  • 区块链技术
  • 浅度理解NodeJS的HTTP模块
  • Git的本地仓库与GitHub的远程仓库
  • haproxy+pacemaker高可用负载均衡
  • 剖析RAC中的@weakify、@strongify
  • 解析PE资源表与重定位表
  • BTA | 周政军:区块链中侧链和分片解决不了的扩容问题,交给DAG吧!
  • PHP定时任务Crontab结合CLI模式详解
  • go append函数以及写入
  • mysql错误Table ‘./mysql/proc’ is marked as crashed and should be repaired
  • 于小镭:区块链将从三方面带来颠覆性认知革命
  • xtrabackup备份和还原
  • 什么时候使用HashMap?它有什么特点?
  • html中表格td的宽度如何设置
  • 关于form表单提交ajaxForm和ajaxSubmit的用法与区别
  • [数据结构]链表的实现在PHP中
  • 2017 年终总结 —— 在路上
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Docker容器管理
  • Otto开发初探——微服务依赖管理新利器
  • Terraform入门 - 3. 变更基础设施
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 排序算法之--选择排序
  • 前嗅ForeSpider教程:创建模板
  • 深度解析利用ES6进行Promise封装总结
  • 算法---两个栈实现一个队列
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​MySQL主从复制一致性检测
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​马来语翻译中文去哪比较好?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #WEB前端(HTML属性)
  • #Z2294. 打印树的直径
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (3)(3.5) 遥测无线电区域条例
  • (C语言)fgets与fputs函数详解
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (转载)利用webkit抓取动态网页和链接
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core引入性能分析引导优化
  • .NET Project Open Day(2011.11.13)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NetCore部署微服务(二)
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [CakePHP] 在Controller中使用Helper