我的答案。窮舉法,個人認為此題還是有點難度的。。。
利用了倒推法以及很高的時間複雜度才解決,並不值得推崇呀。
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. 也很複雜呀~ **: 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; }}; 字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 輸入 ab... 題目描述 請實現乙個演算法,在不使用額外資料結構和儲存空間的情況下,翻轉乙個給定的字串 可以使用單個過程變數 給定乙個string inistring,請返回乙個string,為翻轉後的字串。保證字串的長度小於等於5000。測試樣例 this is nowcoder 返回 redocwon si s... 字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 字串長度在...class change //if
程式設計師面試金典 01 06 字串壓縮
《程式設計師面試金典》 反轉字串
程式設計師面試金典 面試題01 06 字串壓縮