2011-04-21 19 views

答えて

3

何かがトリックを行う必要が役立ちます。

NSString *longest = nil; 
for(NSString *str in wordlist) { 
    if (longest == nil || [str length] > [longest length]) { 
     longest = str; 
    } 
} 

私は任意の簡単な方法を認識していませんよ。

+0

空の文字列を最長の初期値として使用すると、最も長い== nilテストを削除できます。 – taskinoor

+0

良い点。それについて考えると、最長== nilであっても、[最長の長さ]は0と評価され、それでも機能します。 –

0

あなたは配列をソートするthis exampleのようなものを使用します(代わりに「品質」ソートの例では、あなたの文字列の長さのソートを使用)し、その後最長の文字列がいずれかの一番上になりますができまたは最後に(あなたのソートに応じて)。

+1

最大の長さの要素を見つけるためにソートする?あなたはO(n)でこれを行うことができます。それではなぜ並べ替えですか? – taskinoor

+0

True、Tomの提案ははるかに優れています。しかし、すべての答えにコメントするのではなく、あなた自身のために1つを追加してみてください:-) – Jake

+0

質問者が既にループトラバースの解決策を知っていて、より良いものを探しているかどうか疑問に思っていました。質問にコメントがあることを確認してください。そして、私はトムと同じ答えを無制限のチェックなしで書くつもりです。しかし、なぜ誰かがすでに投稿した回答で迷惑メールを送信すべきですか?トムの答えにちょうど1つのコメントだけで十分です。ではない? – taskinoor

0

私は目的を知りません。自分自身ですが、私の解決策は整数「最長」と文字列「longestWord」を保持し、0と「」に初期化することです。次に、リストをループして、現在の単語が「最長」の値よりも長いかどうかを確認します。そうであれば、新しい長さと現在の単語を保存します。ループの最後には、最も長い単語が 'longestWord'変数に格納されています。

希望これは、次のような

関連する問題