算法学习之字符串包含
来源:互联网 发布:软考程序员考什么 编辑:程序博客网 时间:2024/06/06 20:15
问题描述:如果字符串B中的字母都能在A中出现,则字符串A包含字符串B,
本题可用位运算,用两个long long类型的数字参与位运算,两个long long类型正好128位,可以把字符串全部表示完,时间复杂度O(N),空间复杂度O(1);
#include <stdio.h>#include <stdlib.h>#define MAX 50int is_contain(const char *str1,const char *str2){ long long tmp1 = 0,tmp2 = 0;//前64位放进tmp1,后64位放进tmp2; int i = 0,n; while(str1[i]) { n = str1[i++] - '\0'; if(n < 63) tmp1 |= 1<<n; else tmp2 |= 1<<(n%64); } i = 0; while(str2[i]) { n = str2[i++] - '\0'; if(n < 63) { if(!((1<<n)&tmp1)) return 0; } else { if(!((1<<(n%64)&tmp2))) return 0; } } return 1;}int main(){ char str1[MAX],str2[MAX]; scanf("%s %s",str1,str2); if(is_contain(str1,str2)) printf("str1 contain str2\n"); else printf("str1 does't contain str2"); return 0;}
0 0
- 算法学习之字符串包含
- 算法研究之字符串包含
- 算法研究之字符串包含
- 面试算法学习-2-字符串包含
- 两个字符串包含算法
- 字符串包含问题算法
- 【算法】字符串包含
- 算法---字符串包含
- 【算法】字符串包含
- 算法练习 - 字符串包含
- 字符串包含算法
- 每日一帖:数据结构与算法之字符串包含
- 【算法】字符串是否包含问题
- 字符串是否包含问题--算法学习--不断优化才是算法的王道
- 字符串包含子集算法、包含回文子字符串
- Oracle字符串处理之包含
- 编程之法--字符串包含
- KMP算法之编程之美3.1字符串包含的问题
- Java ThreadPoolExecutor线程池原理及源码分析
- KMP算法 java版本
- <备战蓝桥杯之嵌入式>——SYSTICK
- STL sort源码剖析(转)
- java(16)--利用session防止重复登录操作
- 算法学习之字符串包含
- 数据结构: 数组与字符串问题
- iOS 对象等同性
- greenplum list
- <备战蓝桥杯之嵌入式>——BUTTON按键实验
- 九度题目1070
- Beautiful Soup的用法
- Apache shiro 笔记整理之身份认证
- <备战蓝桥杯之嵌入式>——USART