[アルゴリズム]新しいアイデンティティを推奨|プログラマー

6145 ワード

問題の説明


指定された文字列をルールに変換
1.大文字->小文字
2.小文字、数字、「」、「.」、「-」除外文字の削除
3. ..->.
4.先頭と末尾にあります.削除
5.空の文字列="a"
6.最大15文字
16文字以上の場合は、最初の15文字以外の文字を削除します.
削除後は末尾にあります.削除
7.長さが2未満の場合、最後の文字を長さが3の場合まで追加

🎇 マイソリューション

def solution(new_id):
	answer = ''
    # 1. 대문자 -> 소문자
    new_id = new_id.lower()
    # 2. 소문자, 숫자, _, ., - 제외한 문자 제거
    for char in new_id : 
    	if char.isalnum() or char in '_.-':
        	answer += char
    # 3. .. -> .
    while '..' in answer : # 🔑'..'이 존재하지 않을 때까지 제거  
	    answer = answer.replace('..','.')
    # 4. 처음, 끝에 위치한 . 제거
    answer= answer.strip('.')
    # 5. 빈문자열 = 'a'
    answer = 'a' if answer == '' else answer
    # 6. 최대 길이 15자, 끝에 위치한 . 제거
    if len(answer) > 15:
    	answer = answer[:15]
        answer = answer.rstrip('.')
    # 7. 길이 2 이하인 경우 3이 될때까지 맨 마지막 글자 추가
    answer += answer[-1]*(3-len(answer))
   
    return answer

🔑 文字列から特定の文字を削除します。

  • replace(ターゲット文字列、置換文字列)#ソース文字列が置換されますx
  • text = 'aaa'
    text = text.replace('a','') 
    print(text) # 'aaa' -> ''
  • strip(ターゲット文字列)#一致文字列を先頭と末尾から削除
  • この文字以外の文字を新しい変数に順次保存🔑
  • # .과 &을 제외한 특수문자들을 지워야할 때
    text = '=ab.,d&='
    answer =''
    for char in text :
    	if char.isalnum() or word in '.&':
        	answer += char
    print(answer) # ='ab.,d&=' -> 'ab.d&'

    🔑 文字列関連関数

  • 文字列.strip()
    :先頭から末尾まで、指定した文字列に一致する文字列
  • を削除します.
  • 文字.isalnum()
    :文字が数字またはアルファベットの場合は、True
  • を返します.
  • 文字列.lower()
    :小文字に変換