题目描述:

在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符。

输入:

输入有多组数据
每一组输入一个字符串。

输出:

输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1。

样例输入:
ABACCDEFF
AA
样例输出:
-

解题思路:

  首先考虑到时间复杂度,对字符串进行排序或者双层扫描都会到达O(nlong)---O(n^2)的地步。

  所以我们考虑额外使用一个数组进行计数,线性时间扫描数组,然后再按照原来的顺序扫描数组找到次数为1的,进行输出。

for(i=;i<length;i++){
cnt[c[i]-'A']++;
}
for(i=;i<length;i++){
if(cnt[c[i]-'A'] == ){
num = i;
break;
}
}

全部代码

#include <stdio.h>
#include <string.h>
int main(){
int i;
char c[];
int cnt[];
while(scanf("%s",&c)!=EOF){
memset(&cnt,,sizeof(int)*);
int num = -;
int length = strlen(c);
for(i=;i<length;i++){
cnt[c[i]-'A']++;
}
for(i=;i<length;i++){
if(cnt[c[i]-'A'] == ){
num = i;
break;
}
}
printf("%d\n",num);
}
return ;
}
/**************************************************************
Problem: 1283
User: xhalo
Language: C
Result: Accepted
Time:20 ms
Memory:912 kb
****************************************************************/

剑指OFFER之第一个只出现一次的字符(九度OJ1283)的更多相关文章

  1. 剑指 Offer 50. 第一个只出现一次的字符 + 哈希表 + 有序哈希表

    剑指 Offer 50. 第一个只出现一次的字符 Offer_50 题目详情 方法一:使用无序哈希表 package com.walegarrett.offer; /** * @Author Wale ...

  2. 【剑指Offer】第一个只出现一次的字符 解题报告(Python)

    [剑指Offer]第一个只出现一次的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  3. Go语言实现:【剑指offer】第一个只出现一次的字符位置

    该题目来源于牛客网<剑指offer>专题. 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1( ...

  4. 《剑指offer》第一个只出现一次的字符

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  5. 剑指Offer:第一个只出现一次的字符

    题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",这输出'b' // 第一个只出现一次的字符 #include <stdio.h> char f ...

  6. 剑指Offer 34. 第一个只出现一次的字符 (字符串)

    题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题目地址 https:// ...

  7. [剑指offer] 34. 第一个只出现一次的字符

    题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 一次遍历存储到哈希表 一次 ...

  8. 剑指offer——52第一个只出现一次的字符

    题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题解: 想复杂了,从头遍历 ...

  9. 每日一题 - 剑指 Offer 50. 第一个只出现一次的字符

    题目信息 时间: 2019-07-03 题目链接:Leetcode tag:哈希表 难易程度:简单 题目描述: 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字 ...

随机推荐

  1. sqlmap批量扫描burpsuite请求日志记录

    sqlmap可以批量扫描包含有request的日志文件,而request日志文件可以通过burpsuite来获取, 因此通过sqlmap结合burpsuite工具,可以更加高效的对应用程序是否存在SQ ...

  2. Android Paint中setTextSize

    界面适配的时候发现Paint.setTextSize与TextView.setTextSize传入的单位不一致.Paint.setTextSize传入的单位是px,TextView.setTextSi ...

  3. MapReduce编程系列 — 3:数据去重

    1.项目名称: 2.程序代码: package com.dedup; import java.io.IOException; import org.apache.hadoop.conf.Configu ...

  4. WIN7 XP设置MTU,提升下载速度

    可能很少有雷友注意过“本机.网络”的“MTU”值对自己网络性能产生的影响.对于追求更快的下载速度来说,MTU值设置不当,就仿佛穿着高跟鞋跑步一般. MTU是什么? “MTU=最大传输单元 单位:字节” ...

  5. 食物卡喉别拍背部!救了100多万人性命的“海姆立克急救法"

    先讲三个事例: 一.近日,浙江金华一个17月大的小贝边玩边吃花生,被噎住.10多分钟后,奶奶发现小贝大口喘气,以为他玩累了就抱他回家,等父母赶到送医已晚.小贝大脑受损严重-父母含泪同意放弃治疗,孩子走 ...

  6. js标点符号全局匹配

    var modelCode = node.modelCode.replace(/\./g, '\_'); 注意后面的  "\" <script language=" ...

  7. 结构体 typedef struct hash_cell_struct hash_cell_t;

    typedef struct hash_cell_struct hash_cell_t; struct hash_cell_struct{ void* node; /*!< hash chain ...

  8. echarts-noDataLoadingOption问题

    目前echarts暂时不支持noDataLoadingOption外挂,所以我为此diy了一个无数据展示文字. 但是echarts很奇怪,它是判断serises==[]空数组才会自动出现echarts ...

  9. I.MX6 Linux 自动获取AR1020 event input节点

    /*********************************************************************** * I.MX6 Linux 自动获取AR1020 ev ...

  10. 【Java】Java运行cmd命令直接导出.sql文件

    Java中的Runtime.getRuntime().exec(commandStr)可以调用执行cmd命令 package Util; import java.io.File; import jav ...