トピック出典ます。https://leetcode-cn.com/problems/longest-common-prefix/
最長共通接頭文字列の配列を見つけるために関数を記述します。
共通の接頭辞がない場合は、空の文字列を返します「」
例1:
入力:[ "花"、 "流れ "、 "飛行"]
出力: "FL"
例2:
入力:[「犬」、「レースカー 」、「車」]
出力:「」
説明:入力共通のプレフィックスがありません。
説明:
すべての入力は、z小文字のみが含まれています。
回答:
パッケージcom.zx.leetcode.longestcommonprefix。 / ** * @Author JAY * @Date 2019年6月29日午後01時30 * @description最长公共前缀 * * / パブリック クラスSolutionV2 { 公共 静的 ボイドメイン(文字列[]引数){ // 文字列[] STR = { "犬"、 "dracecar"、 "DCAR"}。 // 文字列[] STR = { "花"、 "フロー"、 "フライト"}。 文字列[] STR = { "フロー"、 "flow2"、 "FLOW3"、 "フライト" }。 // 文字列[] STR = { "1flow"、 "2flow"、 "フロー"}。 System.out.println(longestCommonPrefix(STR))。 ストリングlongestCommonPrefix(文字列[] STRS){ 場合(strs.length == 0 ){ リターン "" 。 } 文字列S =のSTRS [0 ]。 以下のために(int型 I = 1; I <strs.length; iは++ ){ 一方(STRS [I] .indexOf(S)!= 0 ){ S = s.substring(0、s.length() - 1 )。 もし(s.isEmpty()){ リターン "" 。 } } } 戻りS。 } }
2回答:
パッケージcom.zx.leetcode.longestcommonprefix。 / ** * @Author JAY * @Date 2019年6月29日午後01時30 * @description最长公共前缀 * * / パブリック クラスソリューション{ 公共 静的 ボイドメイン(文字列[]引数){ // 文字列[] STR = { "犬"、 "dracecar"、 "DCAR"}。 // 文字列[] STR = { "花"、 "フロー"、 "フライト"}。 // 文字列[] STR = { "フロー"、 "フロー"、 "フロー"}。 文字列[] STR = { "1flow"、 "2flow"、 "フロー" }。 System.out.println(longestCommonPrefix(STR))。 もし(STRS == NULL || strs.length == 0 ){ リターン "" 。 } ブール =始める真。 StringBuilderのSB = 新しいStringBuilderの(); int型私= 0 ; int型の長さ= strs.length。 文字列の最初 = STRS [0 ]。 しながら(開始){ 試みる{ 文字列の部分文字列 = first.substring(I、I + 1 )。 用(int型のインデックス= 1、インデックス<長、インデックス++){ IF(!Substring.equals(STRの[インデックス] .substring(Iは、I + 1。 ))){ 始める = falseに、 BREAK ; } } IF (開始){ SB = sb.append(サブストリング); } IF ( first.equals(sb.toString())){ // 記述は、すべてのサイクルを起動するために一致した インクルードは=始めるfalseにし; } 私は ++ ; } キャッチ(例外E){ 開始 = 偽; } } 戻り sb.length()== 0?"" :sb.toString(); } }