さまざまな長さの単語のリストが与えられた場合、任意の単語の最大長を見つける最善の方法は何ですか?
たとえば、次の場合は 6 が返されます。
findMaxLen("a,set,of,random,words")
もちろん、これを行うのはかなり簡単です...
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfif Len(CurItem) GT CurMax >
<cfset CurMax = Len(CurItem)/>
</cfif>
</cfloop>
<cfreturn CurMax />
</cffunction>
というか、もう少し短く...
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfset CurMax = Max( CurMax , Len(CurItem) ) />
</cfloop>
<cfreturn CurMax />
</cffunction>
しかし、より効率的な方法はありますか?
おそらくいくつかのJavaメソッドですか?配列に変換してアイテムの長さで並べ替えますか? コンマ間の最大のギャップを数えますか?
実際には、上記の 2 つの例のどちらも私の現在のニーズには問題なく機能します。これはパフォーマンスが重要な場合ではないため、これに対する回答は必要ありませんが、それでも興味深いと思いました。人々が何を思いつくか見てみましょう...