[programmers]新しいID-2016年/スポーツウェアを2つ追加/推奨(python)


🌴 ふたつ引いてから足す


質問リンク

解決策

numbers:長さが2または100より大きい整数配列.すべての数字は0または100以下です
  • の組合せで、2つの整数の組合せを抽出することができ、
  • 両者の和はansに付加される
  • 重複除外後にソートを行い、
  • に戻る.

    Source Code 1

    from itertools import combinations
    def solution(n):
        ans = []
        for i in list(combinations(n, 2)):
            ans.append(sum(i))
        ans=set(ans)
        return sorted(ans)

    Source Code 2

    from itertools import combinations
    
    def solution(n):
        ans = set()
        for i in list(combinations(n, 2)):
            ans.add(sum(i))
            
        return sorted(ans)
    いくつかの問題を覚えようと思ったが,すっかり問題になってしまった.
    簡単なことはしばらくするとぼんやりしてしまって,後始末をしなければならない.

    🌴 新しいIDの推奨


    質問リンク

    解決策

    new_id:新規ユーザ入力ID
    1.大文字>小文字
    2.小文字、数字、マイナス(-)、アンダースコア()、句点(.)残るだけ
    3.ピリオド(.)街2号以上>句点(.)1つ
    4.句点(.)開始/終了>削除(Start/End>Delete)
    new idが空の文字列の場合、「a」と入力します.
    6.長さが16文字以上>16文字目からすべて削除します.除去後の条件確認
    7.最後の文字が2文字未満になるまで繰り返し貼り付けます>new idの最後の文字が3になるまで

    書き換え元コード

    import re
    
    def solution(new_id):
        ans=re.sub('[^a-z0-9\-_.]', '', new_id.lower())
        ans=re.sub('\.+', '.', ans)
        ans = re.sub('^[.]|[.]$', '', ans)
        ans='a' if len(ans)==0 else ans[:15]
        ans = re.sub('^[.]|[.]$', '', ans)
        ans = ans if len(ans) > 2 else ans + "".join([ans[-1] for i in range(3-len(ans))])
        return ans
    後で確認しやすいように、手順に従って記録してください
    正则の表现は见るたびに新しい.★

    🌴 スポーツウェア


    質問リンク

    解決策

    n:合計学生数lost:学生が運動服を盗まれた番号を含むシーケンス.reserve:複数のジャージ付き学生番号の並び
  • res(
  • res)は、ユニフォームが複数着ある学生の番号、losは、ユニフォームを盗まれたのに複数着ない学生の番号(=ユニフォームなし)
  • 学生r余分な運動服がある場合、(r-1)または(r+1)学生は運動服がなければ貸して、
  • 運動服を受け取った学生番号(r-1またはr+1)を
  • 削除する
  • n(全体学生数)-運動服のない学生数は
  • を返します.

    Source Code

    def solution(n, lost, reserve):
        res= set(reserve) - set(lost)
        los= set(lost) - set(reserve)
        
        for r in res:
            if r-1 in los:
                los.remove(r-1)
            elif r+1 in los:
                los.remove(r+1)
        return n-len(los)

    🌴 2016年


    質問リンク

    解決策

    ab:2016年a月b日요일명 : SUN, MON, TUE, WED, THU, FRI, SAT
  • 日、質問条件の曜日名
  • を月曜日から日曜日の順に保存
  • 12016年a月b日、日付に変換後
  • 週を週として計算した日の一致は
  • を返します.

    Source Code

    import datetime
    from datetime import date
    
    def solution(a, b):
        day =['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
        return day[datetime.date(2016,a,b).weekday()]