奇虎360笔试题 最后一个字符
2016-04-09 11:08
274 查看
题目描述
正在挑战一个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
正在挑战一个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
/** * 字符串中出现的字符的ASCII码在[0x21,0x7F)范围内(33~127) */ #include <stdio.h> #include <stdlib.h> #include <string.h> char str[1000003]; int main() { int t; int num[128];//字符ASCII码作为下标,出现一次计数加1 char arr[128];//记录字符出现的顺序 scanf("%d",&t); while (t--) { scanf("%s",str); memset(num,0, sizeof(num)); memset(arr,'-1', sizeof(arr)); int len = strlen(str); int n = 0; for (int i = 0; i < len; ++i) { if (++num[str[i]] == 1) {//字符第一次出现 arr[n++] = str[i]; } } for (int i = 0; i < n; ++i) { if (num[arr[i]] == 1) { printf("%c\n",arr[i]); break; } } } return 0; }
相关文章推荐
- 周鸿祎:用户信息安全是云计算和大数据时代重中之重
- 三大搜索引擎PK,孰能更胜一筹?
- 对抗百度:阿里与360联手推出购物搜索
- 奇虎360 -- 2013年校园招聘技术类笔试题
- 云存储——360云盘
- 像360学习推广
- 奇虎360 2013年校园招聘技术笔试题--2012年某月某日考试
- 奇虎360 2013校园招聘笔试题
- 2015年奇虎360服务器开发C++电话面试问题
- 要以创业心态面对工作 周鸿祎(360董事长)
- 七夕特别策划:戏说互联网十大“爱情事故”
- 校园招聘--奇虎360笔试
- 百度起诉奇虎360抓取自身内容 索赔1亿
- 从百度、腾讯、360年会致辞看2013年互联网走势
- 【一手面经】奇虎360 2014校园招聘面试 一二面
- wise disk cleaner instead of 360
- 移联名商分享:奇虎360第三季度净利4450万美元 同比增长245%
- 为什么奇虎360也宣布退市 启动私有化?