C语言学习序列之面试题目-计算两个字符串中出现的相同英文字符
来源:互联网 发布:安卓内核源码 编辑:程序博客网 时间:2024/04/28 05:11
题目:计算两个字符串中出现的相同字符
void getSameCh(const char* str1, const char* str2)
{
static char result[128]={0};
int flag=0;
int i=0;
int k,j;
char temp;
if((str1 == NULL) || (str2 == NULL))return;
while(*(str1+i)!='\0')
{
temp=*(str1+i);
if(temp>='a')
{
k=*(str1+i)-'a';
}
else k=*(str1+i)-'A';
flag=flag | (0x00000001<<k);
i++;
}
i=0;k=0;
while(*(str2+i)!='\0')
{
temp=*(str2+i);
if(temp>='a')
{
j=*(str2+i)-'a';
}
else j=*(str2+i)-'A';
if((flag &(0x00000001<<j))!=0)result[k++]=*(str2+i);
i++;
}
result[k]='\0';
for(i=0; result[i]!='\0'; i++)
{
printf("result[%d]:%c \n",i,result[i]);
}
}
输入:getSameCh("abcdefgh","bhil");
输出:bh
算法思路:通过位标识法,共有26个字母,不分大小写,用一个int型32位flag来表示每个字母。首先遍历第一个字母,如果字母存在,则在相应的位置1,然后遍历第二个字母,查看相应的标识符,如果为1,标识字母是相同的,则保存下来。
- C语言学习序列之面试题目-计算两个字符串中出现的相同英文字符
- C语言strpbrk()函数:返回两个字符串中首个相同字符的位置
- 如何获取两个字符串中两个相同的字符
- 删除字符串中相临字符中两个相同的字符
- 微软面试100题目之17 :在一个字符串中找到第一个只出现一次的字符。
- 【C语言【面试题】【笔试题】题目:在字符串中找出第一个只出现一次的字符。
- 【c语言】第一个只出现一次的字符题目:在字符串中找出第一个只出现一次的字符
- c语言实现找到字符串中出现最多的字符
- C语言 找出字符串中出现次数最多的字符
- 微软面试100题目系列---找出字符串中第一个只出现一次的字符
- c语言:返回指定字符在指定字符串中第n次出现的位置(从0开始计算)
- 快速找出两个字符串中所有相同的字符
- Delete characters删除两个字符串中相同的字符
- 计算字符串中出现字符的次数
- 计算字符串中出现字符的次数
- 假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配, 比如:abcda和adabc,由于出现的字符个数都是相同,只是顺序不同, 所以这两个字符串是匹配的。要求高效!
- 字符串中出现相同且长度最长的子序列
- C语言 - 查找字符串中相同的字符函数的使用
- 让VC控制台窗口输出ASCII码大于128的字符
- 利用远程桌面连接实现外网对局域网计算机的控制
- 肚子隐隐疼
- Linux程序设计——用getopt处理命令行参数
- 绕任意轴旋转的变换矩阵的推导
- C语言学习序列之面试题目-计算两个字符串中出现的相同英文字符
- 开发管理----丰富的公用类库积累,助你高效进行系统开发
- [转]Asp.net真正生成高质量不变形缩略图片
- 用javascript判断字符是全角还是半角
- 错误代码分析
- How to test ADC and DAC devices
- 改变系统TCP默认 MSS
- 空-Wifi-framework--详解
- 在 iPhone/iPad 中随意修改数字键盘按钮