CK week1 day5
🧨 質問する
受信した配列の要素の共通接頭辞文字を返します.
ex)strs = ['start', 'stair', 'step']
は、st
を返します.
ex)strs = ['start', 'wework', 'today']
は、''
を返します.
🎯説明する
def get_prefix(strs):
#step 1
if len(strs) == 0:
return ''
n = (len(strs[0]) if len(strs[0]) < len(strs[1])
else len(strs[1]))
pre=''
#step 2
for i in range(n):
if (strs[0][i] == strs[1][i]):
pre += strs[0][i]
#step 3
for str in strs[2:]:
n = (len(s) if len(s) < len(pre)
else len(pre))
while pre:
if (pre == str[:len(pre)]):
break
else:
pre=pre[:-1]
if(pre == ''):
break
return pre
📍 step 1
def get_prefix(strs):
#step 1
if len(strs) == 0:
return ''
n = (len(strs[0]) if len(strs[0]) < len(strs[1]) else len(strs[1]))
pre=''
受信配列の要素が存在しない場合は、空の文字列を返します.
受信した配列の1番目と2番目の要素の長さを比較し、小さな長さ値をn
に含める
📍 step 2
#step 2
for i in range(n):
if (strs[0][i] == strs[1][i]):
pre += strs[0][i]
for文によって文字列を逐字循環する.
1文字目と2文字目を比較し、共通の文字をpre
に含める
📍 step 3
#step 3
for str in strs[2:]:
while pre:
if (pre == str[:len(pre)]):
break
else:
pre=pre[:-1]
if(pre == ''):
break
return pre
pre
が配列の残りの文字列の前にあるかどうかを確認します.
もしなかったら、pre
の最後の字を淘汰します.
再検査を行う.
このようにして得られた最終pre
を返す.pre
がすべて空の文字列に脱落した場合、空の文字列が返されます.
ペアリング def get_prefix(strs):
ans = ''
if len(strs) == 0:
return ''
strs = sorted(strs)
for idx,i in enumerate(strs[0]):
if i == strs[-1][idx]:
ans += i
else:
break
return ans
#print(get_prefix(['abc', 'acd', 'ade']))
strs
をソートし、最初の要素と最後の要素の文字列を比較し、同じ文字列をans
に格納して返します.
Python sorted
関数は、最初の文字列のみに基づいてソートされることが知られている.
文字列の先頭と末尾を考慮して、アルファベット順に詳細に並べ替えていることがわかります.
Reference
この問題について(CK week1 day5), 我々は、より多くの情報をここで見つけました
https://velog.io/@bufflect/CK-week1-day5
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def get_prefix(strs):
#step 1
if len(strs) == 0:
return ''
n = (len(strs[0]) if len(strs[0]) < len(strs[1])
else len(strs[1]))
pre=''
#step 2
for i in range(n):
if (strs[0][i] == strs[1][i]):
pre += strs[0][i]
#step 3
for str in strs[2:]:
n = (len(s) if len(s) < len(pre)
else len(pre))
while pre:
if (pre == str[:len(pre)]):
break
else:
pre=pre[:-1]
if(pre == ''):
break
return pre
📍 step 1
def get_prefix(strs):
#step 1
if len(strs) == 0:
return ''
n = (len(strs[0]) if len(strs[0]) < len(strs[1]) else len(strs[1]))
pre=''
受信配列の要素が存在しない場合は、空の文字列を返します.受信した配列の1番目と2番目の要素の長さを比較し、小さな長さ値を
n
に含める📍 step 2
#step 2
for i in range(n):
if (strs[0][i] == strs[1][i]):
pre += strs[0][i]
for文によって文字列を逐字循環する.1文字目と2文字目を比較し、共通の文字を
pre
に含める📍 step 3
#step 3
for str in strs[2:]:
while pre:
if (pre == str[:len(pre)]):
break
else:
pre=pre[:-1]
if(pre == ''):
break
return pre
pre
が配列の残りの文字列の前にあるかどうかを確認します.もしなかったら、
pre
の最後の字を淘汰します.再検査を行う.
このようにして得られた最終
pre
を返す.pre
がすべて空の文字列に脱落した場合、空の文字列が返されます.ペアリング def get_prefix(strs):
ans = ''
if len(strs) == 0:
return ''
strs = sorted(strs)
for idx,i in enumerate(strs[0]):
if i == strs[-1][idx]:
ans += i
else:
break
return ans
#print(get_prefix(['abc', 'acd', 'ade']))
strs
をソートし、最初の要素と最後の要素の文字列を比較し、同じ文字列をans
に格納して返します.
Python sorted
関数は、最初の文字列のみに基づいてソートされることが知られている.
文字列の先頭と末尾を考慮して、アルファベット順に詳細に並べ替えていることがわかります.
Reference
この問題について(CK week1 day5), 我々は、より多くの情報をここで見つけました
https://velog.io/@bufflect/CK-week1-day5
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def get_prefix(strs):
ans = ''
if len(strs) == 0:
return ''
strs = sorted(strs)
for idx,i in enumerate(strs[0]):
if i == strs[-1][idx]:
ans += i
else:
break
return ans
#print(get_prefix(['abc', 'acd', 'ade']))
Reference
この問題について(CK week1 day5), 我々は、より多くの情報をここで見つけました https://velog.io/@bufflect/CK-week1-day5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol