位运算法:字符串 A 和 B 是否为兄弟,是否包含问题
2015-11-05 11:21
459 查看
例如:
char *stra = "abc";
char *strb = "bca";
char *strc = "rfdabcgg";
char *strd = "bca";
stra 和 strb 为兄弟字符串
strc 包含 strd
char *stra = "abc";
char *strb = "bca";
char *strc = "rfdabcgg";
char *strd = "bca";
stra 和 strb 为兄弟字符串
strc 包含 strd
#include <stdio.h> #include <string.h> int is_brother(char *a , char *b) { int flag = 0; int i; if (strlen(a) != strlen(b)) return 0; for ( i = 0; i< strlen(a); i++ ) { flag |= (1 << (*(a + i) - 'A')); } for ( i = 0; i < strlen(b); i++ ) { if( (flag & (1 << (*(b +i) - 'A'))) == 0) return 0; } return 1; } int stringcontain(char *a_long, char *b_short) { int flag = 0; int i; for ( i = 0; i< strlen(a_long); i++ ) { flag |= (1 << (*(a_long + i) - 'A')); } for ( i = 0; i < strlen(b_short); i++ ) { if( (flag & (1 << (*(b_short +i) - 'A'))) == 0) return 0; } return 1; } int main( int argc, char **argv ) { char *stra = "abc"; char *strb = "bca"; char *strc = "rfdabcgg"; char *strd = "bca"; printf( "1 == True \n 0 == Flse \n" ); printf( "stra and strb is_brother = %d\n", is_brother(stra, strb) ); printf( "strc contain std = %d\n", stringcontain(strc,strd) ); return 0; }
相关文章推荐
- Python基础(十二) 字典的使用
- 人生
- apache activemq的重连
- iOS开发:一个无限滚动自动播放图片的Demo(Swift语言编码)
- c++ 格式化printf
- 统计单词
- 本月点恒四部曲终结篇之浅谈操作符重载
- swift2.0 语法新特性(1)
- 【微信公众号开发入门一】微信公众号开发入门
- 二叉检索树
- ViewPage滑动加载大图和点击关注效果《IT蓝豹》
- iOS8到iOS9微信支付适配问题
- C/C++中数据类型字节数和机器字长关系
- windows、php安装redis扩展
- 报表设计--分组报表-普通分组-横向扩展
- 光棍节脱单,单身狗该你上了
- nmon安装(转)
- [Database] 数据库——锁
- 2015 CCPC 国赛K题,HDU5550(线性递推DP)
- 关于网络学习的若干问题 --- 子网划分,子网掩码,主机地址等划分方法