Level 1. 新しいIDの推奨
11697 ワード
49.新しいアカウントを推薦する
コードテスト練習>2021 KAO BLIND RECRUITMENT>おすすめ新アイデア
https://programmers.co.kr/learn/courses/30/lessons/72410
問題の説明
Input value =
大文字>小文字
小文字、数字、「-」、「」、「.」以外のすべての文字を削除
'..' 以上は「.」ちかん
「.」が先頭または末尾にある場合は削除
空の文字列の場合は、「a」に置き換えます.
長さが16より大きい場合、スライスは15になります.
長さが2より小さい場合は、最後の文字を3に繰り返す.
せいげんじょうけん
idは、長さが1または1000未満の文字列です.
idは、アルファベット大文字、アルファベット小文字、数字、特殊文字からなる.
idに現れる可能性のある特殊文字は-.~!@#$%^&*()=+{]}:?,<>/のみ.
の草案を作る
#00
new_id = "...!@BaT#*..y.abcdefghijklm"
answer = ''
#01
new_id = new_id.lower()
#02
for w in new_id:
if w.isalnum() or w in '-_.':
answer+=w
#03
while '..' in answer:
answer = answer.replace('..','.')
#04
if answer[0] == '.' and len(answer) > 1:
answer = answer[1:]
if answer[-1] == '.':
answer = answer[:-1]
#05
if answer == '':
answer = 'a'
#06
if len(answer)>=16:
answer = answer[:15]
if answer[-1] == '.': # 길이를 줄였을 때 4단계 재적용 필요
answer = answer[:-1]
elif len(answer)<=3:
answer = answer+answer[-1]*(3-len(answer))
answer
解答方法
def solution(new_id):
answer = ''
new_id = new_id.lower()
for w in new_id:
if w.isalnum() or w in '-_.':
answer+=w
while '..' in answer:
answer = answer.replace('..','.')
if answer[0] == '.' and len(answer) > 1:
answer = answer[1:]
if answer[-1] == '.':
answer = answer[:-1]
if answer == '':
answer = 'a'
if len(answer)>=16:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
elif len(answer)<=3:
answer = answer+answer[-1]*(3-len(answer))
return answer
# Code test
new_id = "...!@BaT#*..y.abcdefghijklm"
solution(new_id)
の最後の部分
プログラマレベル1。転送を停止
全部で49問のProgrammer Level 1 Postingが終わりました…!
Reference
この問題について(Level 1. 新しいIDの推奨), 我々は、より多くの情報をここで見つけました https://velog.io/@pear_min/Level-1.-신규-아이디-추천テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol