目次
トピック
文字列の配列内で最も長い共通プレフィックスを検索する関数を作成します。
共通のプレフィックスが存在しない場合は、空の文字列 "" を返します。
例
例 1:
入力: strs = ["flower","flow","flight"]
出力: "fl"
例 2:
入力: strs = ["dog","racecar","car"]
出力: ""
説明: 入力に共通のプレフィックスは存在しません。
一連の考え
垂直方向にスキャンする場合、すべての文字列の各列を前から後ろに走査し、同じ列の文字が同じかどうかを比較します。同じであれば、次の列の比較を続けます。同じでない場合は、現在の列は共通プレフィックスに属していません。部分は最長の共通プレフィックスです。
垂直比較方法では、最初の要素をベンチマークとして使用して、後続の要素を順番に比較します。後続の要素の長さが不十分な場合は、前の結果文字列がすぐに返されることに注意してください。
コード
func longestCommonPrefix(strs []string) string {
if len(strs) <=0 {
return ""
}
for i:=0;i<len(strs[0]);i++{
for j:=1;j<len(strs);j++{
if i == len(strs[j]) || strs[j][i] != strs[0][i]{
return strs[0][:i]
}
}
}
return strs[0]
}
付録
メモする