1. 程式人生 > >Leetcode演算法題(C語言)15--字串中的第一個唯一字元

Leetcode演算法題(C語言)15--字串中的第一個唯一字元

題目:字串中的第一個唯一字元

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。

案例:

s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.

注意事項:您可以假定該字串只包含小寫字母。

程式碼實現:

int firstUniqChar(char* s) {
    int len;
    
    /* 獲取字串長度 */
    len = strlen(s);
    
    /* 長度為1時,返回索引0 */
    if(len == 1)
        return 0;
        
    for(int
i = 0; i < len; i++) { for(int j = 0; j < len; j++) { /* 出了自身,如果有相等的值,則跳出判斷第二個值*/ if((i != j) && (s[i] == s[j])) break; /* 如果所有值都不想等,返回該值的索引 */ else if(j == len - 1) { return i; }
} } return -1; }

相關推薦

Leetcode演算法C語言15--字串第一唯一字元

題目:字串中的第一個唯一字元 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetco

Leetcode演算法C語言1

題目描述:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], ta

Leetcode演算法C語言5--存在重複

題目:存在重複 給定一個整數陣列,判斷是否存在重複元素。 如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。 示例 1: 輸入: [1,2,3,1

Leetcode演算法C語言8--加一

題目:加一 給定一個由整陣列成的非空陣列所表示的非負整數,在該數的基礎上加一。 最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。 你可以假設除了整數 0 之外,這個整數不會以零開頭。 示

Leetcode演算法C語言9--移動零

題目:移動零 給定一個數組 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。 示例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 說明: 1

Leetcode演算法C語言11--有效的數獨

題目:有效的數獨 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 1 數字 1-9 在每一行只能出現一次。 2 數字 1-9 在每一列只能出現一次。 3 數

Leetcode演算法C語言17--驗證迴文字串

題目:驗證迴文字串 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: “A man, a plan

Leetcode演算法C語言2

題目: 從排序陣列中刪除重複項 給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1

LeetCode 簡單】85-字串第一唯一字元

宣告: 今天是第85道題。給定n,從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・`

演算法4-6:KMP字串模式匹配演算法實現 c語言

[提交] [統計] [提問] 題目描述 KMP演算法是字串模式匹配演算法中較為高效的演算法之一,其在某次子串匹配母串失敗時並未回溯母串的指標而是將子串的指標移動到相應的位置。嚴蔚敏老師的書中詳細描述了KMP演算法,同時前面的例子中也描述了子串移動位置的陣列實現的演算法。前面你已經實現

使用python刷Leetcode演算法第二週

第二週了。。。又刷了一週,這周明顯感覺刷起來更順了,加油!!!! Pascal’s Triangle 英文描述: Given numRows, generate the first numRows of Pascal’s triangle. 例子:

凸包問題的快包演算法程式碼C語言

二維凸包可以用來解決圍欄問題、城市規劃問題、聚類分析等等。 分治法 時間複雜度:O(n㏒n)。 思路:應用分治法思想,把一個大問題分成幾個結構相同的子問題,把子問題再分成幾個更小的子問題……。然後我們就能用遞迴的方法,分別求這些子問題的解。最後把每個子問題的解“組裝”

完美數的演算法設計C語言

完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和(即因子函式),恰好等於它本身。如果一個數恰好等於它的因子之和,則稱該數為“完全數”。 尋找完美的數 題目描述:所謂完美的數是這個數除了它自身之外,所有因子的和等於該數。

六大排序演算法與常見的兩大查詢演算法彙總C語言

六大排序演算法程式如下: #include<stdio.h> /*void Bubblesort(int arry[],int len)//氣泡排序演算法 { int i,j; for(i=0;i<len-1;i++) { for(j=i+1;j<le

leetcode演算法JavaScript實現

題外話 刷了一段時間的codewars的JavaScript題目之後,它給我最大的感受就是,會幫助你迅速的提升你希望練習的語言的API的熟悉程度,Array物件、String物件等原生方法,建構函式、一些演算法題等。每次submit之後,看看自己的程式碼,再看看別人寫的程式

杭電OJ第11頁2000-2009道C語言

月的天數 3.1 clu else 要求 max 本質 轉換 err 1. ASCII碼排序 問題描述 輸入三個字符後,按各字符的ASCII碼從小到大的順序輸出這三個字符 Input: 輸入數據有多組,每組占一行,有三個字符組成,之間無空格 Output: 對於每組輸入

最短路徑——dijkstra演算法程式碼c語言

最短路徑問題   看了王道的視訊,感覺雲裡霧裡的,所以寫這個部落格來加深理解。(希望能在12點以前寫完) 一、總體思想 dijkstra演算法的主要思想就是基於貪心,找出從v開始的頂點到各個點的最短路徑,做法入下 1.初始化三個輔助陣列   s[],dist[],path[]  

【作業系統】銀行家演算法實現C語言

# 【作業系統】銀行家演算法實現(C語言) ##### 注意:本人編碼水平很菜。算是自己的一個總結。可能會有我還沒有發現的bug。如果有人發現後可以指出,不勝感激。 ## 1.銀行家演算法: > 我們可以把作業系統看作是銀行家,作業系統管理的資源相當於銀行家管理的資金,程序向作業系統請求分配資源相當於

c++c語言程式設計過程遇到的細微問題總結持續更新

1.char*指標訪問元素的問題 對於char *型變數,遍歷訪問該變數的每一個元素時,會發生錯誤。 例如: char * str="01010101"; for(int i=0;i<str

C語言找出字串的特定的字元,並輸出

這裡我們用到了函式 strchr 這個函式返回值是一個指標 函式引數是 一個字串和一個字元。 #include <stdio.h> #include<string.h> void main() { char str[80]; char c