日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JZ-C-35

發布時間:2025/3/8 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZ-C-35 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

劍指offer第三十五題:第一個只出現一次的字符

1 //============================================================================ 2 // Name : JZ-C-35.cpp 3 // Author : Laughing_Lz 4 // Version : 5 // Copyright : All Right Reserved 6 // Description : 第一個只出現一次的字符 7 //============================================================================ 8 9 #include <iostream> 10 #include <stdio.h> 11 #include <string> 12 using namespace std; 13 14 char FirstNotRepeatingChar(char* pString) 15 { 16 if(pString == NULL) 17 return '\0'; 18 19 const int tableSize = 256; 20 unsigned int hashTable[tableSize];//此處定義的哈希表中,key為字符,字符的ASCII碼值為數組下標,value為字符出現次數, 21 for(unsigned int i = 0; i<tableSize; ++ i) 22 hashTable[i] = 0; 23 24 char* pHashKey = pString; 25 while(*(pHashKey) != '\0')//第一次遍歷字符串 26 hashTable[*(pHashKey++)] ++;//使哈希表中對應字符(數組下標為字符ASCII碼值)的出現次數加1 27 28 pHashKey = pString;//再將指針重新指向pString 29 while(*pHashKey != '\0') 30 { 31 if(hashTable[*pHashKey] == 1)//遇到第一個value為1的立即跳出循環,返回 32 return *pHashKey; 33 34 pHashKey++; 35 } 36 37 return '\0'; 38 } 39 40 // ====================測試代碼==================== 41 void Test(char* pString, char expected) 42 { 43 if(FirstNotRepeatingChar(pString) == expected) 44 printf("Test passed.\n"); 45 else 46 printf("Test failed.\n"); 47 } 48 49 int main(int argc, char** argv) 50 { 51 // 常規輸入測試,存在只出現一次的字符 52 Test("google", 'l'); 53 54 // 常規輸入測試,不存在只出現一次的字符 55 Test("aabccdbd", '\0'); 56 57 // 常規輸入測試,所有字符都只出現一次 58 Test("abcdefg", 'a'); 59 60 // 魯棒性測試,輸入NULL 61 Test(NULL, '\0'); 62 63 return 0; 64 }

轉載于:https://www.cnblogs.com/Laughing-Lz/p/5604583.html

總結

以上是生活随笔為你收集整理的JZ-C-35的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。