程序员面试金典第一章:数组与字符串(3) 确定两串乱序同构
来源:互联网 发布:中国旅游消费数据 编辑:程序博客网 时间:2024/05/01 03:34
1.1 题目描述
给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
测试样例:
“This is nowcoder”,”is This nowcoder”
返回:true
“Here you are”,”Are you here”
返回:false
1.2解题思路
思路1:用hash把第一个字符串所有出现的字符保存起来,判断第二个字符串是否与之一致时间复杂度O(n),空间复杂度O(1),这是因为字符的种类是有限的
#include <unordered_map>class Same {public: bool checkSam(string stringA, string stringB) { // write code here if(stringA.size() != stringB.size()) return false; unordered_map<char, int> map; for(auto ch:stringA) ++map[ch]; for(auto ch:stringB) { if(--map[ch] < 0) return false; } return true; }};
思路2:与思路1类似,不过不使用hash,而是使用大小为128的int数组记录一下时间复杂度O(n),空间复杂度O(1)
tips:先判断,如果两个字符串长度不同,那么直接返回false
0 0
- 程序员面试金典第一章:数组与字符串(3) 确定两串乱序同构
- 程序员面试金典第一章:数组与字符串(1) 确定字符互异
- 《程序员面试金典》--确定两串乱序同构
- 《程序员面试金典》确定两串乱序同构
- 【程序员面试金典】确定两串乱序同构
- 【程序员面试金典】确定两串乱序同构
- 程序员面试金典(3):确定两串乱序同构(python)
- 确定两串乱序同构(程序员面试金典)
- 程序员面试金典:字符串--确定两串乱序同构、基本字符串压缩
- 程序员面试金典 1.3 确定两串乱序同构
- 程序员面试金典题解 确定两串乱序同构
- 程序员面试金典——确定两串乱序同构
- 程序员面试金典第一章:数组与字符串(5) 基本字符串压缩
- 面试金典系列3--确定两串乱序同构
- 确定两串乱序同构之程序员面试经典
- 程序员面试金典第一章:数组与字符串(2) 原串翻转
- 程序员面试金典第一章:数组与字符串(4) 空格替换
- 程序员面试金典第一章:数组与字符串(6) 像素翻转
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
- 码云git的导入项目(网上下载)和导出项目(上传到网上)
- 80老翁谈人生(315):彻夜未眠,思考对策;增强定力,反击违纪派
- 微信开发者工具下载地址
- 【JavaScript】深入理解JavaScript系列(3):全面解析Module模式
- 程序员面试金典第一章:数组与字符串(3) 确定两串乱序同构
- 图片压缩--质量压缩法&边界压缩法
- 【DVB】【南非】南非启动数字地面电视转换
- file类中getPath()、getAbsolutePath()、getCanonicalPath()的区别
- 云计算小认识
- java接收到大数据类型
- XStream入门到精通教程
- Angular绑定file表单的change
- android studio error in opening zip file