1. 程式人生 > >在一個字串中找到第一個只出現一次的字元(java實現)

在一個字串中找到第一個只出現一次的字元(java實現)

題目:在一個字串中找到第一個只出現一次的字元。如輸入abaccdeff,則輸出b。

分析:這道題是2006 年google 的一道筆試題。

時間換空間,類似前面時間CSDN討論的一道華為的面試題:在O(n)時間內,得出一個字串每一個字元出現的次數類似;

用到這道題,可以不只是統計只出現一次的;還可以統計多次出現的

public class s17 {
	public static char firstOne(String s)
	{
		char result = '0';
		char temp;
		int[] num = new int[52];
		for (int i = 0; i < s.length(); i ++)
		{
			temp = s.charAt(i);
			if ( temp >= 'a' && temp <= 'z' )
			{
				num[temp - 'a']++;
			}
			else
				if (temp >= 'A' && temp <= 'Z')
				{
					num[temp - 'A' + 26] ++;
				}
		}
		for (int i = 0; i < num.length; i ++)
		{
			if (num[i] == 1)
			{
				if (i >= 0 && i <=26)
				{
					result = (char)(i + 'a');
				}
				else
					result = (char)(i - 26 + 'A');
				break;
			}
		}
		return result;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		String s = "xabb";
		String s = "abaccdeff";
//		
		char c = firstOne(s);
		System.out.println(c);
	}
}