Level 1. 新しいIDの推奨


49.新しいアカウントを推薦する


コードテスト練習>2021 KAO BLIND RECRUITMENT>おすすめ新アイデア
https://programmers.co.kr/learn/courses/30/lessons/72410

問題の説明


Input value =
  • new id=文字列
  • Process =

  • 大文字>小文字

  • 小文字、数字、「-」、「」、「.」以外のすべての文字を削除

  • '..' 以上は「.」ちかん

  • 「.」が先頭または末尾にある場合は削除

  • 空の文字列の場合は、「a」に置き換えます.

  • 長さが16より大きい場合、スライスは15になります.

  • 長さが2より小さい場合は、最後の文字を3に繰り返す.
  • Output value =
  • は、文字列
  • を返します.

    せいげんじょうけん


  • 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)

    の最後の部分

  • 6ステップにおいて、文字長をスライスする場合、スライスの値が第4ステップの要求を満たすことを確保する.
  • プログラマレベル1。転送を停止


    全部で49問のProgrammer Level 1 Postingが終わりました…!