伯準-2941クロアチア文字


文字列問題に役立つ関数をたくさん理解してメモします。

  • find関数findIndex = array.find('ㅋㅋ')->は、「ははは」を持つ最初のindexを返します.
    ない場合は-1を返します
  • replace関数を使用して文字列から特定の文字列を削除
  • a = '아름다운 대한민국'
    a = a.replace('다운', '', 1)
    
    print(a)
    //아름 대한민국
    replace関数の最初のパラメータは、変更するターゲット文字列であり、2番目の文字列は変更する文字列である.""で削除!また、3番目のパラメータは変更回数です.
    同じターゲット文字列が複数ある場合に便利です.
    a = '아름다운 대한민국다운 민국이'
    a = a.replace('다운', '', 1)
    
    print(a)
    //아름 대한민국다운 민국이
    a = '아름다운 대한민국다운 민국이'
    a = a.replace('다운', '', 2)
    
    print(a)
    //아름 대한민국 민국이
    この2つの関数を用いて解いた.

    解決コード😀

    import sys
    
    arr = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
    
    n = sys.stdin.readline().rstrip()
    
    removeCount = 0
    
    for i in range(len(arr)):
      findIndex = n.find(arr[i])
      while findIndex != -1:
          n = n.replace(n[findIndex : findIndex + len(arr[i])], "A", 1)
          removeCount += 1
          findIndex = n.find(arr[i])
    
    for i in range(len(n)):
      if n[i] != 'A':
        removeCount += 1
    print(removeCount)

    試行錯誤🤣

  • a in b構文ですが、複数のターゲット文字列が文字列にある場合、
  • は処理できません.
  • array sliceを使用する場合、[0:3]->インデックスは0スライスから2になります.(3までスライスしたと勘違いしていたのでエラーが多かった…
  • replaceを使用してターゲット文字列を削除すると、予期せぬエラーが発生します.x)ddz=z=からdz=を最初に削除すると、残りの文字列はdz=であるが、これもdz=であるため、removeCountまで正しく数えられない.特定の文字の置換で解決します.大文字は入力値にないので、問題を解決するために「A」に変換しました.