每日一C:两个字符串对比,顺序输出相同的字符

  • 2017-10-29
  • 176
  • 10

由小琦在2017.10.28提供的问题。

题目


输入:

123abc456

987654321

输出:

123456

不存在相同字符串输出no。


不多说,代码很简单,直接看代码,

源代码:

// ConsoleApplication1.cpp: 定义控制台应用程序的入口点。
// VS2017生成,其他编译器请自行删除第一个头文件

#include "stdafx.h"
#include <stdio.h>
int main()
{
	int map[256] = { 0 };            //初始化数组
	int c;
	int i;
	while ((c = getchar()) != '\n') map[c] |= 1;          // map[c]=map[c]|1 ==1
	while ((c = getchar()) != '\n') map[c] |= 2;          //按位或运算==3
	for (i = c = 0; i < 256; i++)
	{
		if (map[i] == 3)          //凡数组的值等于3,就是重复的字符
		{
			putchar(i);          //数组下标i的值就是字符的ascii码,输出字符。
			c++;                   //有多少重复的字符
		}
	}
	if (c == 0) printf("no");        
	putchar('\n');
	getchar();                            //暂停程序的效果
         return 0;
}

新知识点:

按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。

规则:

1|1=1
1|0=1
0|1=1
0|0=0
例如:0|1可写算式如下: 00000000|00000001
00000001(十进制为1)可见0|1=1
更详细到进百度百科:https://baike.baidu.com/item/%E6%8C%89%E4%BD%8D%E6%88%96/548283?fr=aladdin

有建议欢迎指出。

 

  1. 2016:  我对本站发动DDos攻击(2)
  2. 2016:  绘本“抱抱我”之大家来改编(0)

评论

  • 南侠回复
    UC Browser 11 UC Browser 11 iPhone iOS 10.3.3 iPhone iOS 10.3.3

    返回值呢……

    • Waylee回复
      Google Chrome 62 Google Chrome 62 GNU/Linux GNU/Linux

      😎 谢谢,下次一定不会忘记了

  • 南侠回复
    UC Browser 11 UC Browser 11 iPhone iOS 10.3.3 iPhone iOS 10.3.3

    不如scanf(“%s”,map);
    然后两个for循环对比,比你这时间复杂度低一些……

    • Waylee回复
      Google Chrome 62 Google Chrome 62 GNU/Linux GNU/Linux

      是吗?你可以帮我写一下吗?
      哈哈哈,其实我觉得两个for来实现太麻烦。

  • 南侠回复
    UC Browser 11 UC Browser 11 iPhone iOS 10.3.3 iPhone iOS 10.3.3

    for循环原理就是数组筛重,只不过不是去重了,换成输出就OK了……

    • Waylee回复
      Google Chrome 62 Google Chrome 62 GNU/Linux GNU/Linux

      我知道单纯对比,但是有什么方法去除重复的字符。以及字符排序的排序方法

  • 南侠回复
    UC Browser 11 UC Browser 11 iPhone iOS 10.3.3 iPhone iOS 10.3.3

    可以采用第三个数组,或者更改一个数据范围外的值…你学的太慢了吧…你是要过级还是干嘛?

    • Waylee回复
      Google Chrome 62 Google Chrome 62 GNU/Linux GNU/Linux

      😆 慢点无所谓,就是爱好和别人讨论。
      不慢。花了十几天时间把C语言中文网到基础篇看完来,但是都不懂,以及解题目不熟练
      现在准备看数据结构了。
      —————-
      嗯,好笨,我不理解你的解题意思。

  • 南侠回复
    UC Browser 11 UC Browser 11 iPhone iOS 10.3.3 iPhone iOS 10.3.3

    有问题转我博客好了,有几道题用到了……我把老早在OJ的评测记录搬运了,实在没东西写…

    • Waylee回复
      Google Chrome 62 Google Chrome 62 GNU/Linux GNU/Linux

      OJ是什么

发表评论