Leetcode(Python3)[Longest Common Prefix]

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        #文字列を縦で比較していく 
        if not strs:
            return ""
        string=""
        kizyunn=strs[0]
        #要素1からのリスト 
        newlist=strs[1:]
        for i  in range(len(kizyunn)):
            check1=strs[0][i]
            for j in range(1, len(strs)):
                #文字列の長さの調整を ==で行う
                if i==len(strs[j])or strs[j][i]!=check1:
                    return strs[0][:i]
        return strs[0]

            # 文字列の長さも考慮必要×
            # for st in newlist:
            #     s=st[i]
            #     if check1==s:
            #         string+=check1
            
        return string

        # # 最初の文字を基準に考える
        # kizyunn=strs[0]
        # # 空の文字列を作成
        # setubi=""
        # # スライス表現[start:stop]範囲の指定
        # del strs[:1]
        # i=0
        # #重複して文字を加えないように 
        # k=0
        # #要素の数だけ回す 
        # # for st in strs: だとstに1つずつ文字が入っていく。stでそのまま比較可能。
        # for j in range(len(strs)):
        #     check=strs[j]
        #     #要素の中身の文頭チェック 
        #     for t in range(len(check)):
        #         if kizyunn[t]==check[t]:
        #             if t>k:
        #                 setubi+=kizyunn[t]
        #                 k+=1
        #         else:
        #             br
                    

   
                    

        

今回の問題は、文頭からのアルファベットが同じならその分保存しようというものです。
解き方は2通りで考えました。
ポイントは、3点あります。
1点目は、スライス表現。リストの中身を切り取れる便利なものです。
List[:1]は、1番目まで切り取りです。つまり以下のようになります。

my_list = [1, 2, 3, 4, 5]
new_list = my_list[:1]
print(new_list)  # 出力: [1]

2つ目は、文字列の足し算。
文字列同士は x=o+pみたな感じでokです。
3つ目は、文字の要素の表現です。
list[0][i]で、list内の初めの文字の中のi番目の要素を持ってこれます。

この記事が気に入ったらサポートをしてみませんか?