いくつかの基本的な知識を記録するために、ここで、水の問題で行うが、最初のトピックleetcodeは、行うが、ルーキーは、あまりにも多くの食べ物、まだ始まったばかり。ギャングスターによって、パスを参照してください。
https://leetcode-cn.com/problems/longest-word-in-dictionary/
ここに私の分析とコードは次のとおりです。
1 クラスのソリューション{ 2 公共: 3 4 クラスツリー{ 5 公共://ここで明確にする必要性を呼び出した後、それ以外の場合は、民間のツリーとして認識され、呼び出すことはできません 6 BOOLの = has_words 偽; 7 ベクトル<ツリー*> V ; 8。 9。 ツリー():has_words(偽の)、V(26で){}; 10 // 初期化パラメータの伝送は、実際、V 26であるベクター上のアレイを生成する 。11 静的 ボイド wordsinsert(ツリーT * ストリングAIM){ 12である ため(チャー{AIM):C 13であります もし(!T-> V [C- ' A ' ])T-> V [C- ' A ' ] = 新しいツリー。 14 T = T-> V [C- ' A ' ]。 15 } 16 T-> has_words = 真。 17 } 18 19 静的 ブール searchwords(ツリー* T、文字列目的){ 20 用(チャーC:AIM){ 21 、T = T-> V [C- ' A ' ]。 22 もし(!T-> has_words)リターン falseに、 23である } 24 リターン trueに; 25 } 26である }; 27 28 列 longestWord(ベクトル< ストリング >・ワード){ 29 ツリー* =ルート新しい新しいツリー; 30 用の(文字列AIM:ワード)トラバース馴染み{//注意方法 31である ツリー:: wordsinsert(根、AIM); //ツリーの二つの機能をので、ここでは、静的型の後に宣言されているので、対応するタイプのインスタンスが存在しない場合に型名を意味ダイレクトコール機能 32 について} //詳細静的機能解決(!慎重に検討してください) 33 文字列の最長="" ; 34 のために(文字列目的:ワード){ 35 であれば(ツリー:: searchwords(根、AIM)){ 36 であれば(aim.size()> longest.size())最長=を目指します。 37 他の 場合(aim.size()== longest.size()&&最長<AIM)最長= 目指します。 38 } //字典序直接比较即可 39 } 40 リターン最長。 41 } 42 }。
OK