字符串匹配问题
来源:互联网 发布:数据库冷热分离 编辑:程序博客网 时间:2024/06/06 07:18
题目描述:
假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配,比如:abcda和adabc,
由于出现的字符个数都是相同,只是顺序不同,所以这两个字符串是匹配的。
要求高效实现下面的函数: boolen IsMatch(const char *str1, const char *str2)
给出代码(主要思想看代码即知):
bool IsMatch(const char *str1, const char *str2) { if( str1==NULL || str2 == NULL ) return false; unsigned int counter[128]={0}; while(*str1!='\0') counter[*str1++]++; while(*str2!='\0') { counter[*str2++]--; if( counter < 0 ) return false; } for( int i=0; i<255; i++ ) if( counter[i] != 0 ) return false; return true; }
上述代码,需要对str1进行一次完整遍历,对str2在最坏情况下需要进行一次完整遍历(大多是str1和str2匹配的情况),
所以一般只需对str2进行部分遍历就可以了,时间复杂度O(N)
- 字符串查找匹配问题
- 字符串匹配问题
- 中文字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- js 字符串 匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串通配符匹配问题
- 字符串匹配问题
- 1063:字符串匹配问题
- 线程同步辅助-CountDownLatch(搬迁至此)
- 阻塞队列-BlockingQueue (搬迁至此)
- 返回结果线程—等待单个线程(搬迁至此)
- 返回结果的线程-等待一组线程(搬迁至此)
- C#中创建和使用资源动态链接库
- 字符串匹配问题
- Kinect for Windows SDK开发入门(五):景深数据处理 下
- 学习 HeroKu 的架构设计
- 梯度
- IcP(Iterative closest Point)最近点迭代法和NFc
- char 与 unsigned char的本质区别
- 最小2乘法
- Java回调函数的理解
- 戏说:卷积