[Algorithm🧬] 新しいIDの推奨
質問リンク / 答えを出す。py , 答えを出す。swift
第3段階と第4段階でindexerrorが現れたときは本当に散らかっていました...開始...この2回現れたら、中間文字列の長さが変わるので、次のように削除をチェックします.もちろん.インデックスエラーが発生しました.
フェーズ6も...0文字または1文字の問題が発生しました.もう一度解決しなければならない問題のようです.他の人の答えを見ると正規表現が上手です.それも考えてみよう.私はCの編成方式から抜け出すことができないようだ.
第3段階と第4段階でindexerrorが現れたときは本当に散らかっていました...開始...この2回現れたら、中間文字列の長さが変わるので、次のように削除をチェックします.もちろん.インデックスエラーが発生しました.
# step 3
for i in range(len(answer)-1):
if answer[i] == "." and answer[i + 1] == ".":
answer.pop(i)
だから.このオーバーラップ部分の最初のindexのみを保存し、その後popをしました...エラーはありませんが、前の削除、後のインデックスが変わったので、変な答えが出てきました.# step 3
indexs = []
for i in range(len(answer)-1):
if answer[i] == "." and answer[i + 1] == ".":
indexs.append(i)
for i in range(len(indexs)):
answer.pop(i);
では!!indexs配列を裏返して、後ろから削除すればいい!!コードを書きたいのですが...じゃ、後ろからでいいんじゃないですか.以下のコードを記述した.フェーズ6も...0文字または1文字の問題が発生しました.もう一度解決しなければならない問題のようです.他の人の答えを見ると正規表現が上手です.それも考えてみよう.私はCの編成方式から抜け出すことができないようだ.
def solution(new_id):
answer = []
# step 1
new_id = new_id.lower()
# print(answer)
# step 2
for i in range(len(new_id)):
c = new_id[i]
if c.isdecimal() or c.isalpha() or c == "-" or c == "_" or c == ".":
answer.append(c)
# print(answer)
# step 3
start = len(answer) - 1
for i in range(start, 0, -1):
if answer[i] == "." and answer[i - 1] == ".":
answer.pop(i)
# print(answer)
# step 4
if len(answer) > 1:
if answer[0] == ".":
answer.pop(0)
if answer[-1] == ".":
answer.pop()
elif len(answer) == 1:
if answer[0] == ".":
answer.pop()
# print(answer)
# step 5
if len(answer) == 0:
answer.append("a")
# print(answer)
# step 6
if len(answer) > 15:
answer = answer[:15]
if answer[-1] == ".":
answer.pop()
# print(answer)
# step 7
last_c = answer[-1]
while len(answer) < 3:
answer += last_c
# print(answer)
answer = ''.join(str(c) for c in answer)
return answer
Reference
この問題について([Algorithm🧬] 新しいIDの推奨), 我々は、より多くの情報をここで見つけました https://velog.io/@ddosang/Algorithm-신규-아이디-추천テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol