当前位置:首页 > 开发 > 编程语言 > Java > 正文

java-17-在一个字符串中找到第一个只出现一次的字符

发表于: 2012-02-11   作者:bylijinnan   来源:转载   浏览:
摘要: public class FirstShowOnlyOnceElement { /**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b * 1.int[] count:count[i]表示i对应字符出现的次数 * 2.将26个英文字母映射:a-z <--> 0-25 * 3.假设全部字母都是小写 */ pu

public class FirstShowOnlyOnceElement {

	/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
	 * 1.int[] count:count[i]表示i对应字符出现的次数
	 * 2.将26个英文字母映射:a-z <--> 0-25
	 * 3.假设全部字母都是小写
	 */
	public static void main(String[] args) {
		String str="abaccdeff";
		int index=find(str);
		if(index!=-1){
			char firstShowOnlyOnceElement=str.charAt(index);//charAt() source code:return value[index + offset];
			System.out.println(firstShowOnlyOnceElement);
		}
		
	}

	//return the index of firstShowOnlyOnceElement
	public static int find(String str){
		if(str==null||str.length()==0){
			return -1;
		}
		int len=str.length();
		char[] letters=str.toCharArray();
		//In java,'char' is 16 bits,so there are 2^16 characters.
		//But we deal with only the 26 English letters in this case.
		int[] count=new int[26];//the 'HashTable'
		for(int i=0;i<len;i++){
			char curChar=letters[i];
			count[curChar-'a']++;
		}
		for(int i=0;i<len;i++){
			char curChar=letters[i];//iterate the string,not the HashTable
			if(count[curChar-'a']==1){
				return i;
			}
		}
		return -1;
	}
}

java-17-在一个字符串中找到第一个只出现一次的字符

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
思路:用数组模拟哈希表,保存字符和其出现次数的映射关系,然后从头开始扫描字符串即可求解 代码如
思路:用数组模拟哈希表,保存字符和其出现次数的映射关系,然后从头开始扫描字符串即可求解 代码如
Google 2006年的一道笔试题,难度系数低 题目描写叙述: 在一个字符串中找到第一个仅仅出现一次的字
1.问题描述 在一个字符串中找到第一个只出现一次的字符。如输入AbAssvfFCCBbhV,则输出v。 2.解题思
一、题目:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff
【题目】 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 【分析】 【代码
第十六~第二十章:全排列,跳台阶,奇偶排序,第一个只出现一次等问题 作者:July、2011.10.16。 出
这个题目的思想是,书上说,由于题目中说了是其它的数字有两个,而这两个数字 只有一个,于是知:异
来自剑指offer 分析: 如果整型数组中只有一个数字出现一次,我们只需将数组中每个元素依次做异或操
转载请注明出处:http://blog.csdn.net/mmc_maodun/article/details/27800577 题目:一个int数组中有
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号