黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 - 網校 - 萬題庫 - 美好明天 - 直播 - 導航
您現在的位置: 考試吧 > 軟件水平考試 > 模擬試題 > 程序員 > 正文

計算機軟件水平考試《程序員》面試題精選題(3)

來源:考試吧 2017-10-18 11:57:18 要考試,上考試吧! 萬題庫
“計算機軟件水平考試《程序員》面試題精選題(3)”供考生參考。更多軟件水平考試內容請訪問考試吧軟件水平考試網。

  -第一個只出現一次的字符

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

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

  看到這道題時,最直觀的想法是從頭開始掃描這個字符串中的每個字符。當訪問到某字符時拿這個字符和后面的每個字符相比較,如果在后面沒有發現重復的字符,則該字符就是只出現一次的字符。如果字符串有n個字符,每個字符可能與后面的O(n)個字符相比較,因此這種思路時間復雜度是O(n2)。我們試著去找一個更快的方法。

  由于題目與字符出現的次數相關,我們是不是可以統計每個字符在該字符串中出現的次數?要達到這個目的,我們需要一個數據容器來存放每個字符的出現次數。在這個數據容器中可以根據字符來查找它出現的次數,也就是說這個容器的作用是把一個字符映射成一個數字。在常用的數據容器中,哈希表正是這個用途。

  哈希表是一種比較復雜的數據結構。由于比較復雜,STL中沒有實現哈希表,因此需要我們自己實現一個。但由于本題的特殊性,我們只需要一個非常簡單的哈希表就能滿足要求。由于字符(char)是一個長度為8的數據類型,因此總共有可能256 種可能。于是我們創建一個長度為256的數組,每個字母根據其ASCII碼值作為數組的下標對應數組的對應項,而數組中存儲的是每個字符對應的次數。這樣我們就創建了一個大小為256,以字符ASCII碼為鍵值的哈希表。

  我們第一遍掃描這個數組時,每碰到一個字符,在哈希表中找到對應的項并把出現的次數增加一次。這樣在進行第二次掃描時,就能直接從哈希表中得到每個字符出現的次數了。

  參考代碼如下:

  ///////////////////////////////////////////////////////////////////////

  // Find the first char which appears only once in a string

  // Input: pString - the string

  // Output: the first not repeating char if the string has, otherwise 0

  ///////////////////////////////////////////////////////////////////////

  char FirstNotRepeatingChar(char* pString)

  {

  // invalid input

  if(!pString)

  return 0;

  // get a hash table, and initialize it

  constinttableSize =256;

  unsignedinthashTable[tableSize];

  for(unsignedinti = 0; ihashTable[i] = 0;

  // get the how many times each char appears in the string

  char* pHashKey = pString;

  while(*(pHashKey) != '\0')

  hashTable[*(pHashKey++)] ++;

  // find the first char which appears only once in a string

  pHashKey = pString;

  while(*pHashKey != '\0')

  {

  if(hashTable[*pHashKey] == 1)

  return *pHashKey;

  pHashKey++;

  }

  // if the string is empty

  // or every char in the string appears at least twice

  return 0;

  }

  相關推薦:

  2017年計算機軟件水平考試時間公布(全年)

  各地2017年軟件水平考試準考證打印/領取時間匯總

  考試吧特別策劃:2017年計算機軟考報考指南專題熱點文章

  軟考各科目模擬試題及答案各科目復習指導匯總

  軟考報考條件軟考報名方法考試大綱科目

  歷年軟考真題及答案匯總軟件水平考試簡介

0
收藏該文章
0
收藏該文章
文章搜索
·精選試題 ·智能練習
·智能評估 ·視頻解析
掃描二維碼下載
  • 初級職稱
  • 中級職稱
  • 高級職稱

版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
Copyright © 2004- 考試吧軟件水平考試網 出版物經營許可證新出發京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧
主站蜘蛛池模板: 国产午夜不卡在线观看视频666 | 久久久久久久网 | 福利片免费观看 | 成人久久久精品乱码一区二区三区 | 亚洲另类自拍丝袜第1页 | 日韩影院在线观看 | 欧美成人精品不卡视频在线观看 | 大杳蕉伊人狼人久久一本线 | 成人免费观看网站 | 日本三级香港三级久久99 | 国产福利短视频 | 久久天天躁狠狠躁夜夜爽 | 站长工具天天爽视频 | 婷婷在线成人免费观看搜索 | 欧美人成片免费看视频不卡 | 国产欧美日韩在线一区二区不卡 | 九九在线精品视频播放 | 国产成人爱情动作片在线观看 | 波多野结衣不卡 | 午夜精品在线视频 | 成人免费片| 亚洲日本aⅴ片在线观看香蕉 | 99精品日韩 | 在线看毛片网站 | 黄色片日韩 | 全色黄大色大片免费久久老太 | 日韩手机在线观看 | 精精国产www视频在线观看免费 | 欧美成人鲁丝片在线观看 | 99久久免费国产特黄 | 国产成人综合网 | 成人男女网18免费91 | 一级毛片免费一级直接观看 | eeuss秋霞成人影院 | 国产精品合集一区二区三区 | 国产日韩精品一区在线观看播放 | 制服丝袜第一页在线 | 黄乱色伦短篇小说 | 老司机午夜精品 | 黑人一区二区三区中文字幕 | 手机看片1024国产 |