小数点を検索
5926 ワード
プログラマ-小数点を検索
一桁と書かれた紙片が散らばっている.ばらばらの紙切れを貼って、いくつかの小数点を作ることができることを見たいです.
各紙片の数字の文字シリアル番号を指定すると、紙片で作成できるいくつかの数を返すための解法関数を完了します.
numbersは、長さが1または7未満の文字列です. numberは0から9の数字で構成されています. 013とは、0、1、3の数字が書かれた紙片が散らばっていることを意味する.
numbersreturn"17"3"011"2
まず文字列の各文字を取得し、これまでチェックしていなかった数字が小数か小数かを判断し、小数の個数を保存します.
このように,1桁の場合は小数を判別できるが,2つ以上の数を組み合わせたときに生じるすべての数をどのように求めるかわからないので,他の人の解答を見た.
まず,
返される値が単純に
その後、
問題の説明
一桁と書かれた紙片が散らばっている.ばらばらの紙切れを貼って、いくつかの小数点を作ることができることを見たいです.
各紙片の数字の文字シリアル番号を指定すると、紙片で作成できるいくつかの数を返すための解法関数を完了します.
せいげんじょうけん
I/O例
numbersreturn"17"3"011"2
に近づく
まず文字列の各文字を取得し、これまでチェックしていなかった数字が小数か小数かを判断し、小数の個数を保存します.
このように,1桁の場合は小数を判別できるが,2つ以上の数を組み合わせたときに生じるすべての数をどのように求めるかわからないので,他の人の解答を見た.
他人の解答
from itertools import permutations
import math
def check(n):
k = math.sqrt(n)
if n < 2:
return False
for i in range(2, int(k)+1):
if n % i == 0:
return False
return True
def solution(numbers):
answer = []
for k in range(1, len(numbers)+1):
perlist = list(map(''.join, permutations(list(numbers), k)))
for i in list(set(perlist)):
if check(int(i)):
answer.append(int(i))
answer = len(set(answer))
return answer
[プログラマー]少数/パイソン-チョコレート金賢宇を探す まず,
check
関数は私がこのアルゴリズムを解決するために実現したものである.重要なのは、permutations
を用いて閉塞部分を解決することである.permutations
は、順序の英語「置換」から推測することができ、与えられた文字のうち、第2のパラメータに渡された数から任意の順序のすべての状況を求め、配列文字に戻る.返される値が単純に
list
に設定されている場合、結合可能な場合をset
に組み合わせて要素を作成することがわかります.問題を解決するためには、set
の要素を組み合わせる必要があるので、''.join
にマッピングすることによって文字列を求める.その後、
set
で重複除外を行い、各要素をチェックし、少数であれば配列に入れる.しかし、0の組み合わせの結果は同じである可能性があるため、最後にanswer
内の要素の重複を取り除き、残りの要素数を返すと、正解が得られる.Reference
この問題について(小数点を検索), 我々は、より多くの情報をここで見つけました https://velog.io/@shin0805/소수-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol