码迷,mamicode.com
首页 > 其他好文 > 详细

一个字符串中找到第一个只出现一次的字符

时间:2015-08-12 19:10:28      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:

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

输入:

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

输出:

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

 

我们这里有两种解题思路

1.蛮力法。

遍历数组,每找到一个字符是遍历一下整个数组,看看该字符是否存在数组下表不一致,但是ASSIC码值一样的字符还存在,如果不存在,则是返回该字符,如果存在,则继续遍历。该算法的时间复杂度为O(n*n),显然这样的效率不是很高。

技术分享
 1 /**
 2      * 利用两次循环,时间复杂度O(n*n)
 3      * 
 4      * @author yfy
 5      * @param args
 6      *            需要查找的字符串
 7      * @param len
 8      *            字符串长度
 9      * @return 返回第一个出现一次字符的ASSIC码值,如果没有只出现一次的字符,则返回-1
10      */
11     int firstNotRepeatingChar(char[] args, int len) {
12         int j;
13         for (int i = 0; i < len; i++) {
14             for (j = 0; j < len; j++) {
15                 if (i != j) {
16                     if (args[i] == args[j]) {
17                         break;
18                     }
19                 }
20             }
21             // 沒有找到和这个字符相等的字符。
22             if (j == len) {
23                 return args[i];
24             }
25         }
26         return -1;
27     }
View Code

 

一个字符串中找到第一个只出现一次的字符

标签:

原文地址:http://www.cnblogs.com/yfyzy/p/4724944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!