リストのユーザー入力を読み取り、リストの要素がリスト内にあるかどうかを判断A
するアルゴリズムを作成する必要があります (発生した場合、プログラムは「はい」を出力し、そうでない場合は「いいえ」を出力する必要があります)。B
B
A
出発点となる次のコードを思いつきました。
n=int(input('Enter the length of list A '))
A=[]
for i in range (0,n):
InpEl=int(input('Enter the elements '))
A.append(InpEl)
print(A)
n=int(input('Enter the length of list B '))
B=[]
for i in range (0,n):
InpEl2=int(input('Enter the elements '))
B.append(InpEl2)
print(B)
checklist=B
for each in A:
if each in checklist:
print('YES')
else:
print('NO')
いずれにせよ、私は「いいえ」になります。ここでの間違いは何ですか?
また、後でリストを変更して、 の要素がに出現する順序でB
発生するかどうかをプログラムが判断できるようにする必要がありますが、必ずしも連続しているとは限りません。A
B
For example, let M be the length of B and N be the length of A.
Then the program should return yes if there are indices i0, i1...im+1 such that 0<= i0 < i1...< im-1 < N such that A[i0] = B[0];A[i1] = B[1]...A[im-1] =
B[m-1].
この種の要求を満たすループを構築する簡単な方法はありますか?
PS: ユーザー入力を整数だけでなく文字列も読み取れるようにすることは可能ですか? raw_input
Python 3.5 で役立つかどうかはわかりません。
PSS: 申し訳ありませんが、ここでコードを入力する際に小さな間違いを犯しました。今修正しました。別の質問: 各要素に対して複数の「はい」と「いいえ」の出力を取得します。
Enter the length of list A 3
Enter the elements 1
Enter the elements 2
Enter the elements 3
[1, 2, 3]
Enter the length of list B 3
Enter the elements 5
Enter the elements 4
Enter the elements 3
[5, 4, 3]
NO
NO
YES
発生した場合に1回だけyesとnoを1回だけ出力するようにコードを変更するにはどうすればよいですか?