题目是这样的:

正在挑战一个CrackMe的你,把需要填写的前面几位密码都正确猜出了,可是这最后一位密码,好像藏得有点深。CrackMe的作者还挑衅般的在里面藏了个.tar.gz文件,解压缩出来,里面写道你要的最后一个字符就在下面这个字符串里。这个字符是下面整个字符串中第一个只出现一次的字符。 (比如,串是abaccdeff,那么正确字符就是b了)然而下面给出来的字符串好像太长太长了,单靠人力完全无法找出来。于是,你需要写一个程序代劳了。输入文件体积较大,请使用一些快速的输入输出手段,不推荐使用cin/cout,对Java并不推荐使用Scanner直接读写。

输入描述:
第一行,一个正整数T(T≤20)  ,表示输入数据组数。之后T行,每行一个字符串S。( 1≤S  的长度≤10 6   ,保证字符串中出现的字符的ASCII码在[0x21,0x7F)范围内,即均为可显示的非空白符,同时保证一定有解
输出描述:
一共T 行,每行一个字符C ,表示所给的相应字符串中第一个只出现一次的字符。
输入例子:
2
abaccdeff
testonline
输出例子:
b
s

 1 #include<iostream>
 2 #include<ctime>
 3 #include <stdio.h>
 4 #include<cstring>
 5 #include<cstdlib>
 6 #include <map>
 7 #include <string>
 8 using namespace std;
 9 #include <stdio.h>
10 #include <string.h>
11
12 #define N 1000000
13
14 #if 1
15 int main()
16 {
17     int strN[255]={0};
18     char str[N]={0};
19     char result[255]={0};
20     static int idx = 0;
21     int T=0;
22     int m=0;
23     while(scanf("%d",&T)!=EOF)
24     {
25         for(int i=0;i<T;i++)
26         {
27             char firstchar='0';
28             //scanf("%s",&str);
29             scanf("%s",str);
30             m=(int)strlen(str);
31
32             for(int i=0; i<m; i++)
33             {
34                 strN[(int)(*(str+i))]++;
35             }
36
37             for(int i=0; i<m; i++)
38             {
39                 if(strN[(int)(*(str+i))]==1)
40                 {
41                     firstchar=*(str+i);
42                     result[idx++]=firstchar;
43                     break;
44                 }
45             }
46
47         }
48
49         //memset(str, 0, m);
50         for(int j=0;j<T;j++)
51         printf("%c\n", result[j]);
52
53     }
54     return 0;
55 }
56
57 #endif

View Code

转载于:https://www.cnblogs.com/guxuanqing/p/5857348.html

找出只出现一次的第一个字符相关推荐

  1. 给了一串数字:218916754,根据下面规则可以找出扣扣号码:首先删除第一个数,紧接着将第二个数放到这串数字的末尾,再将第三个数删除,并将第四个数放到这串数字的末尾......如此循环,知道剩下最后

    题:给了一串数字:218916754,根据下面规则可以找出扣扣号码:首先删除第一个数,紧接着将第二个数放到这串数字的末尾,再将第三个数删除,并将第四个数放到这串数字的末尾......如此循环,知道剩下 ...

  2. 【算法】大搜车——找出一个字符串中出现次数最多的字符,如果有多个出现次数相同的字符,那就找出最先出现的那个字符

    题目描述:找出一个字符串中出现次数最多的字符,如果有多个出现次数相同的字符,那就找出最先出现的那个字符 思考: 我的第一反应是分三步: 遍历字符串,统计每个字符出现的次数 找出最大的次数 找出最大次数 ...

  3. 快速找出两个字符串中所有相同的字符

    面试时看到一个试题, 编写算法, 快速找出两个字符串中所有相同的字符. 现实现如下: 1. 利用TreeSet来查找是否有相同的字符(之前是利用TreeSet来查找) 2. 利用HashSet来查找是 ...

  4. C语言简单算法之求交错序列前N项和,统计学生平均成绩与及格人数,求1到100的和,求奇数分之一序列前N项和,找出最小值,求n!,统计字符,最佳情侣身高差

    C语言简单算法之求交错序列前N项和,统计学生平均成绩与及格人数,求1到100的和,求奇数分之一序列前N项和,找出最小值,求n!,统计字符,最佳情侣身高差 [1] 1.题目三 求交错序列前N项和 1.实 ...

  5. C语言找出两个字符串唯一不同的一个字符(附完整源码)

    C语言找出两个字符串唯一不同的一个字符 C语言找出两个字符串唯一不同的一个字符完整源码(定义,实现,main函数测试) C语言找出两个字符串唯一不同的一个字符完整源码(定义,实现,main函数测试) ...

  6. 本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符

    本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符 函数接口定义: char *match( char *s, c ...

  7. 找出只包含1的最大矩形c语言,一些简单的编程练习题

    转载自 http://blog.jobbole.com/53039/ 每当成为入门CS课程(学生们学习编程语言的课程)的助教时,都困于提出好的练习题.Project Euler和类似的问题通常对初学者 ...

  8. python找出只出现一次的数字_Python数组中只出现一次的数字

    任何一个数字异或他自己都等于0,0异或任何一个数都等于那个数.数组中出了两个数字之外,其他数字都出现两次,那么我们从头到尾依次异或数组中的每个数,那么出现两次的数字都在整个过程中被抵消掉,那两个不同的 ...

  9. python找出只出现一次的数字_【LeetCode 136】只出现一次的数字(Python)

    题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明:你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 一.思路 通过遍历 ...

最新文章

  1. CS0122 “AbstractUnpooledSlicedByteBuffer”不可访问,因为它具有一定的保护级别
  2. 机器学习资料推荐 URL
  3. java if语句选择题_选择语句(if else) 习题(2017/12/1)
  4. spark on yarn简单部署
  5. 热图绘制一个快乐五一
  6. jQuery选择器【学习】
  7. 【2019牛客暑期多校训练营(第七场)E】Find the median【权值线段树】
  8. 破解WMV格式电影的许可证
  9. PR字幕模板 简单大气红色创意图形动态字幕条全屏标题pr模板
  10. 隐私信息检索(隐匿查询)
  11. linux卫星添加,卫星电视卡在linux下的应用
  12. 取消windos开机时的磁盘检查,提升开机速度
  13. 累加数Python解法
  14. python-机器学习-手写数字识别
  15. getchar()用法 与 getch()函数使用方法
  16. Redis--AKF架构
  17. 使用FeatureTask多线程优化in,提高查询速度
  18. Attention专场——(2)Self-Attention 代码解析
  19. 【NOIP模拟赛】【乱搞AC】【贪心】【模拟】匹配
  20. grep怎样匹配tab键

热门文章

  1. Win10设置防火墙,使局域网能访问此电脑的Tomcat服务
  2. Android5.0和6.0之后新增的控件说明
  3. RecyclerView的各种版本兼容问题处理集锦
  4. Asp.Net把word文件转换为html文件
  5. tomcat 8.5 远程登录管理页面
  6. CentOS7文本模式下配置及安装KVM虚拟机
  7. 从安装认识Angular 2
  8. 五大最主流浏览器综合性能测试
  9. 两个无线AP导致的网络故障
  10. HLG 1334 最好的心情[lis 变形]