21.4.28


アルゴリズム17日目


質問です。


1.質問


検索前の文字が同じかどうか:接頭辞検索の問題

2.方法

  • ネストfor loop:失敗
  • 3.書名結果

  • sort()でソート後(a~z順にリスト中の要素を並べる)
  • を文字長で検索する.

    4.コード

    def get_prefix(strs):
      if len(strs) == 0:
        return ''
      # 먼저 해당 없는 길이 0인 배열 제외
    
      strs.sort()
      # 정렬
      shortest = strs[0]
      # 기준점 잡기
      prefix = ''
      # return 할 완성작 잡기
    
      for i in range(len(shortest)):
      # Range index
        if strs[len(strs)-1][i] == shortest[i]:
          prefix += strs[len(strs)-1][i]
      # 만일 값이 같다면 프레픽스에 하나씩 글자 추가
        else:
          break
      # 없으면 브레이크 걸기
    
      return prefix
    
    
    print(get_prefix(['start', 'stair', 'step']))
    困難この部分はよく知られていない.後で再試行

    質問です。


    1.質問

  • の連続値のうち、返される最大値は
  • である.

    2.アプローチ

  • for loopを使用して、前後の値を加算し、0より大きいか0より小さいかを比較しようとしたが、
  • に失敗した.

    3.書名結果

  • forサイクルの後、正数のあれだけが互いに次を加えればいいので、それから最大値を探せばいいのですが...
  • あまり難しく考えないで

    4.コード

    def maxSubArray(nums):
        for i in range(1, len(nums)):
        # 1부터 len(num)까지
            if nums[i-1] > 0:
        # 만일 0보다 큰 요소가 있다면
                nums[i] += nums[i-1] 
        # 다음 요소와 더해준다.
        return max(nums)
        # 그 중 가장 큰 값
    print(maxSubArray([-2,1,-3,4,-1,2,1,-5,4]))

    各種ソート参照リンク


    コメントブログ

    質問です。


    1.質問


    ソートの選択

    2.正解

    def selectionSort(nums):
        for i in range(len(nums)-1):
          min_index = i
          for j in range(i+1, len(nums)):
            if nums[j] < nums[min_index]:
              min_index = j
          nums[i], nums[min_index] = nums[min_index], nums[i]
        return nums
    
    print(selectionSort([2,4,7,5]))
    フィボナッチのように少し公式に似ています.よく知っておきましょう.

    質問です。


    1.質問


    泡の位置合わせ選択ソートとは逆に、for loopをネストする必要があります

    2.ヒント



    3.正解

    def bubbleSort(arr):
      for i in range(len(arr)-1, 0, -1):
        for j in range(i):
          if arr[j] > arr[j+1]:
            arr[j], arr[j+1] = arr[j+1], arr[j]
      return arr
    
    print(bubbleSort([2, 1, 4, 6, 8, 3]))

    質問です。


    1.質問


    さいきかんすう

    2.近接

  • 再帰関数を使用してインデックス番号
  • を逆順序で作成および追加

    3.正解

    def reverseString(str):
      result = []
      for i in range(len(str)):
        result.append(str[len(str) - (i+1)])
    
      result = ''.join(result)
    
      return result
    print(reverseString('hello'))
    コメントリンク