#41239: 這題夠搞(C++),建議先看


seancai78@gmail.com (風月春秋)

學校 : 臺北市立成功高級中學
編號 : 176406
來源 : [140.113.124.212]
最後登入時間 :
2024-10-07 23:20:19
a131. 00739 - Soundex Indexing -- UVa739 | From: [118.166.25.243] | 發表日期 : 2024-07-13 18:00

先提供一些好用的輸出及陣列

int map[26]={
    0,1,2,3,0,
    1,2,0,0,2,
    2,4,5,5,0,
    1,2,6,2,3,
    0,1,0,2,0,2
};對應每一個的值
輸出:
#define col1 10
#define col2 25
printf("%*s%*s%s\n",col1,"",-col2,"NAME","SOUNDEX CODE");
或是
printf("%*s%*s%s\n",col1,"",-col2, str1 , str2);

這題的運算邏輯都很簡單,但文義難懂,以下主要在講解題目意思
輸出格式不討論,在上面
 
給你一個字串(name) ex: EBELL
第一個字母要存起來作為SOUNDEX CODE的輸出
大部分字母都有對應的編號,EBELL => x 1 x 44
連續一樣的編號只記一次,包含首碼 ex:SC => 沒有要記錄
如此紀錄EBELL => 14
使這個碼有三位 14=>140
輸出即為E140

*紀錄編碼時,只要有三位就可以退出循環
*若一位都沒有則全為0(不要while死循環)
 
ZeroJudge Forum