我的答案。窮舉法,個人認為此題還是有點難度的。。。
利用了倒推法以及很高的時間複雜度才解決,並不值得推崇呀。
參考**:class change ; //把備胎集初始化為目標string
for(count_step = 1; ; count_step++)
return -1;
}//找出兩子字串不同的位
vector
count_diff_char(string &s1, string &s2)
void add_1_diff(vector
&dic, vector
&symbol, vector
&candi) }}
}return;
}};
參考**:一、vector
1.判斷某元素是否存在
vector
vstr;
int nret = std::count(vstr.begin(), vstr.end(), "xiaochun");//判斷vector中是否有 "xiaochun" 這個元素
2.查詢某個元素
方法一:
自己寫迴圈遍歷
方法二:
vector
vec;
vector
::iterator iter;
string gpcode="sz000001";
iter = find(vec.begin(), vec.end(), gpcode);
if(iter != vec.end())
else
注意:如果vector中儲存的是自定義型別(結構體/類),則需要為該型別過載==操作符。再用find
#include
#include
#include
#include //是c++的標準模版庫(stl)中最重要的標頭檔案之一,提供了大量基於迭代器的非成員模板函式。
class demostruct
bool
operator == (const demostruct & obj) const
//過載 「==」 操作符,函式最後的 const 別忘了,否則會報錯。(詳見:
};int main()
return
0; }
二、map
1.判斷某元素是否存在
map mapdemo;
bool bret = mapdemo.count(100);//判斷mapdemo中是否有 key = 100 的元素
2.查詢某個元素
map::iterator iter = mapdemo.find(100);
if (iter != m_int.end())
else
思路:
最短搜尋路徑,所以是廣度優先搜尋(bfs)。
按照定義,存在乙個字母差異的單詞為鄰居,因此採用逐位替換字母並查詢字典的方法尋找鄰居。
對佇列中的每個單詞記錄路徑長度。qu
eueir
ring
,int
>>
q que
ue
ir
ring
,int
>>
q; 從start進入佇列記作1.長度為i的字母的鄰居,如果沒有訪問過,則路徑長度為i+1.
也很複雜呀~
**:
class change //if
return result;
}private:
int bfs(string start, string end, vector
&dict) //if
// 存放單詞和單詞所在層次
queue
string, int> > q;
q.push(make_pair(start, 1));
// 判斷是否訪問過
vector
visited;
visited.push_back(start);
while(!q.empty()) //if
// 判斷之前訪問過或者是否在字典裡
vector
::iterator ite = find(dict.begin(), dict.end(), newword);
vector
::iterator ite2 = find(visited.begin(), visited.end(), newword);
if(ite2 == visited.end() && ite != dict.end()) //if
}//for
}//for
}//while
return -1;
}};
程式設計師面試金典 01 06 字串壓縮
字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 輸入 ab...
《程式設計師面試金典》 反轉字串
題目描述 請實現乙個演算法,在不使用額外資料結構和儲存空間的情況下,翻轉乙個給定的字串 可以使用單個過程變數 給定乙個string inistring,請返回乙個string,為翻轉後的字串。保證字串的長度小於等於5000。測試樣例 this is nowcoder 返回 redocwon si s...
程式設計師面試金典 面試題01 06 字串壓縮
字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 字串長度在...