1. 程式人生 > >如何找出一個字串中第一次且只出現一次的字元

如何找出一個字串中第一次且只出現一次的字元

     要找出一個字串中出現的字元,自然而然我們就會想到在ASCⅡ碼中共有256種字元,通過遍歷可以找出每種字元存在的個數,這就用到了ASCⅡ碼字元與編碼中的一一對映的關係。那麼就還需要知道字串的長度,要找第一次出現且只出現一次的字元,從第一個數開始計數到最後一個數,將所有相同字元存在的個數都儲存起來,若是為1時,那麼就找到這個數了,就可以結束迴圈了!

附上源程式:

#include<stdio.h>
#define N 50

int main()
{
	char str[N];
	int count[256] = {0};
	
	scanf ("%s",str);
	
	int i = 0;
	int len = 0;
	
    // 統計字串長度
    for (i=0; i<N; i++)
    {
		if (str[i] == '\0')
		{
			break;
		}
		len++;
	}
	/*
	while (str[i++])
	{
		len++;
	}
	*/
	
	for (i=0; i<len; i++)
	{
		count[str[i]]++;
	}
	for (i=0; i<len; i++)
	{
		if (count[str[i]] == 1)
		{
			printf ("%c\n",str[i]);
			break;
		}
	}
	return 0;
}

相關推薦

python字串面試題:一個字串第一個字母和最後一個字元第一重複,中間沒有重複最長的子串

1.給出任意一個字串,列印一個最長子串字串及其長度,如果有相同長度的子字串,都要一起打印出來,該子字串滿足以下條件, 第一個字母和最後一個字元是第一次重複 這個子字串的中間字母沒有重複 這個子字串是滿足條件裡面的最長的 如: adsasadmasd 中滿足條件的是dmasd   im

如何一個字串第一出現字元

     要找出一個字串中出現的字元,自然而然我們就會想到在ASCⅡ碼中共有256種字元,通過遍歷可以找出每種字元存在的個數,這就用到了ASCⅡ碼字元與編碼中的一一對映的關係。那麼就還需要知道字串的長

python實現一個字串第一不重複出現字元

例:輸入:yellow       輸出:y      輸入:tooth      輸出:h思想:使用字典進行遍歷:def find_str(arr): dic={} for i in range(len(arr)): if arr[i] in

一個字串第一出現字元

題目:在字串中找出第一個只出現一次的字元。如輸入 “abaccdeff”,則輸出b。 思路分析: (1)由於題目與字元出現的次數相關,那麼是不是可以統計每個字元在該字串中出現的次數?要達到這個目的,我們需要一個數據容器來存放每個字元出現的次數。在這個容器中可

LeetCode:5. Longest Palindromic Substring(一個字串最大的子迴文串)

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of sis 1000. Example 1: Input

一個字串最長並且不重複的子字串,要求時間複雜度越小越好

題目:找出一個字串中長度最長並且不含重複字元的子字串; 要解決這個問題有多種解法,在這裡我們來實現一種時間複雜度最小的方法,使用了雜湊值 程式碼如下:最終,時間複雜度為O(n),是用空間換時間來實現的。 //最長字元,開始位置的索引 public int startI

js演算法:一個字串出現次數最多的字元

在其他部落格裡面看到了一種方法: 這個方法很簡單,但是15-20行程式碼對於萌新來說,不是很好理解,因此我給出了以下這個方案,先想辦法統計出所有字母各出現的次數,然後把這些次數push到一個數組裡面,找出最大的那個數(我這裡是通過排序找出的最大數),最大數有了,該數對應的字元不就很容易

Python 實現 一個字串出現次數最多的字元並輸出該字元

'''演算法題二: 找出一個字串中出現次數最多的字正確的解決思路是: 利用collections 工具中的Counter,對列表中元素出現的頻率進行排序。 Counter返回值是一個按元素出現頻率降序排列的Counter物件,它是字典的子類,因此可以使用字典的方法'''fro

給定字串第一個不重複的字元

給定一串字串,找出其中第一個不重複的字元。 如:輸入”abcddcaeb1~soop”,輸出’e’ 方法一 思路: 定義list<char> store和list<char> storeDel,對輸入字串str進行遍歷,對st

尋找一個字串的最長重複子串(字尾陣列)&一個字串最長不重複子串

一、尋找一個字串中的最長重複子串(字尾陣列) 字尾陣列其實可以看尋找一個字串中的最長重複子串(字尾陣列)作一個由字串s倒數i個字元組成的子串的集合,其中0<i<s.length(),例如 字串strstr的字尾陣列為: {r,tr,str,rstr,trstr,

一個字串重複最多的字元以及出現的次數

package test.com; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(S

華為上機試題(java)一個字串出現次數最多的字元

 Java求字串中出現次數最多的字元,如String Str = "aaabbcddddee";那麼輸出:d 4 ;若String Str = "aaabbcddddeexxxxxx";那麼輸出:x 6 import java.util.*; import java.uti

陣列有三個數出現,其它的數恰好出現這三個數。

具體的題意如題 當我第一次碰到這類題的時候是宿舍的舍友分享的,當時他說的問題還要簡單一些,具體的題意是"陣列中只有一個數只出現一次,其它的數恰好出現兩次,找出這個數。"  當時我的第一感覺就是要用到快排,因此得出第一種演算法,將陣列進行快排的第一層排序,然後從中間分開,數字

請實現一個函式用來字元第一出現字元

題目描述 請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第一個只出現一次的字元是"g"。當從該字元流中讀出前六個字元“google"時,第一個只出現一次的字元是"l"。 輸出描述: 如果當前字元流沒有存在出現一次的字元,返回#字元。

給定一個英文字串,請寫段程式碼這個字串首先出現的那個英文字元(需要區分大小寫)。 輸入描述:

題目描述 給定一個英文字串,請寫一段程式碼找出這個字串中首先出現三次的那個英文字元(需要區分大小寫)。 輸入描述: 輸入資料一個字串,包括字母,數字等。 輸出描述: 輸出首先出現三次的那個英文字元 示例1 輸入 Have you ever gone shopping

JS:一個字串由[a-z]組成,第一出現的字母

  var mystr = 'asdasdasdwdascxc';         function fis(str){//97             var len = str.length;             var arr = [];             f

【c語言】第一出現字元題目:在字串第一出現字元

// 第一個只出現一次的字元題目:在字串中找出第一個只出現一次的字元。 // 如輸入“abaccdeff”,則輸出’b’。 #include <stdio.h> #include <string.h> char find_one(ch

劍指offer--字串第一出現字元(題面已經更新)C++

題目描述: 找出字串中第一個只出現一次的字元 輸入描述: 輸入一個非空字串 輸出描述: 輸出第一個只出現一次的字元,如果不存在輸出-1 示例1 輸入 asdfasdfo 輸出 ö 程式碼實現如下: #include<iostream>

一個字串找到第一出現字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫)

題目:在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 思路:建立資料結構HashMap,可以記錄每個字元對應出現的次數,之後遍歷字串,將對應的值儲存在HashMa

學習筆記 c++ (這個字串首先出現的那個英文字元

/*給定一個英文字串,請寫一段程式碼找出這個字串中首先出現三次的那個英文字元。 輸入描述: 輸入資料一個字串,包括字母,數字等。 輸出描述: 輸出首先出現三次的那個英文字元 示例1 輸入 Have you ever gone shopping and 輸出 e */ #i