九度OJ 1283:第一个只出现一次的字符 (计数)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:1808
解决:997
- 题目描述:
-
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符。
- 输入:
-
输入有多组数据
每一组输入一个字符串。
- 输出:
-
输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1。
- 样例输入:
-
ABACCDEFF
AA
- 样例输出:
-
1
-1
思路:
对所有大写字母进行计数即可。
只循环一遍的解法我没想出来,我的做法是循环两遍,第一遍计数,第二遍找第一个只出现一次的字符。
代码:
#include <stdio.h>
#include <string.h> #define M 10000
#define N 26 int main()
{
int i, min;
char s[M+1];
int c[N], index[N]; while(scanf("%s", s) != EOF)
{
for (i=0; i<N; i++)
c[i] = 0; for (i=0; i<strlen(s); i++)
{
if ( c[s[i]-'A']++ == 0)
index[s[i]-'A'] = i;
} min = M;
for (i=0; i<N; i++)
{
if (c[i] == 1 && index[i] < min)
min = index[i];
} if (min == M)
printf("%d\n", -1);
else
printf("%d\n", min);
}
return 0;
}
/**************************************************************
Problem: 1283
User: liangrx06
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/
九度OJ 1283:第一个只出现一次的字符 (计数)的更多相关文章
- 九度OJ 1283 第一个只出现一次的字符
题目地址:http://ac.jobdu.com/problem.php?pid=1283 题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现 ...
- 剑指Offer - 九度1283 - 第一个只出现一次的字符
剑指Offer - 九度1283 - 第一个只出现一次的字符2013-11-21 21:13 题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出 ...
- 九度OJ 1351 数组中只出现一次的数字
题目地址:http://ac.jobdu.com/problem.php?pid=1351 题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输 ...
- 九度OJ 1072:有多少不同的面值组合? (计数)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3112 解决:1591 题目描述: 某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的 ...
- 【剑指Offer面试编程题】题目1283:第一个只出现一次的字符--九度OJ
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据 每一组输入一个字符串. 输出: 输出第一个只出现一次的 ...
- 九度oj 题目1283:第一个只出现一次的字符
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据 每一组输入一个字符串. 输出: 输出第一个只出现一次的 ...
- 剑指OFFER之第一个只出现一次的字符(九度OJ1283)
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据每一组输入一个字符串. 输出: 输出第一个只出现一次的字 ...
- 【九度OJ】题目1153:括号匹配问题 解题报告
[九度OJ]题目1153:括号匹配问题 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1153 题目描述: 在某个字符串(长度不超过1 ...
- 【九度OJ】题目1435:迷瘴 解题报告
[九度OJ]题目1435:迷瘴 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1435 题目描述: 通过悬崖的yifenfei,又面临 ...
随机推荐
- SparkMLlib基础内容
SparkMLlib基础内容 (一),多种数据类型 1.1 本地向量集 def testVetor: Unit ={ val vd:Vector=Vectors.dense(2,3,6) printl ...
- Shell命令-----VI
vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi file 不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(comman ...
- zabbix自定义触发器
zabbix中监控项仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,"触发器"正式 用于为监控项所收集的数据定义阈值,每一个触发器 ...
- 2017.6.26 接口测试工具postman使用总结
参考来自: http://www.cnblogs.com/sunshine-sky66/p/6369963.html http://www.cnplugins.com/tool/specify-pos ...
- Angular 学习笔记——$rounte
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...
- android:Cordova Android, hello Cordova ,PhoneGap android
文章来自:http://blog.csdn.net/intbird 官方文档: http://cordova.apache.org/docs/en/5.0.0//index.html intbird的 ...
- html 后台页面布局
<!DOCTYPE html> <html lang="en"> <head> <title></title> < ...
- php装饰器
<?php /* * 用一个类来装饰另一个类,动态的给一个对象增加一些额外功能,这些功能一般是在这个对象调用方法前或方法后 * 比如我们要给User类增加一个登陆日志的功能 */ // 抽象构件 ...
- 借助backtrace和demangle实现异常类Exception
C++的异常类是没有栈痕迹的,如果需要获取栈痕迹,需要使用以下函数: #include <execinfo.h> int backtrace(void **buffer, int size ...
- react-native-router-flux 页面跳转与传值
1.正向跳转假设情景:从Home页跳转到Profile页面,Profile场景的key值为profile 不带参数: Actions.profile 带参数: Actions.profile({'ke ...