이것은 당신이 파이썬에서 그것을 구현하는 것이 방법이다. 동일한 논리를 다른 프로그래밍 언어로 이식 할 수 있습니다.
from collections import Counter
code_to_test = 'OONQHH'
valid_codes=['PA','NY','OH','WV']
valid_code_letters=['P','A','N','Y','O','H','W','V']
w,x,y = False,False,False
#test condition 1
alpha=list(code_to_test)
if set(alpha) <= set(valid_code_letters):
w=True
#test condition 2,3
if len(code_to_test)%2==0:
if len(code_to_test)==2:
if code_to_test in valid_codes:
x=True
else:
a = [code_to_test[i:i+2] for i in range(0, len(code_to_test), 2)]
for q in a:
if q in valid_codes:
break
else:
x=True
#test condition 4
ccount = Counter(code_to_test)
if ccount['P']==ccount['A'] and ccount['N']==ccount['Y'] and ccount['O']==ccount['H'] and ccount['W']==ccount['V']:
y=True
if w and x and y:
print "VALID CODE"
else:
print "INVALID CODE"
출력 :
당신은 4 조건 확인해야
INVALID CODE
: 테스트하는 코드의 문자 집합 또는 주어진 코드 문자와 동일하게 설정 인 경우
- 합니다.
- 코드가 짝수 인 경우.
- 문자가 짝수이면 암호화됩니다.
- 암호화 된 코드가 유효한 코드로 구성되어있는 경우.
그리고 코드는 어디에 있습니까? –
자바 스크립트에서 정규식 패턴으로 이런 종류의 것을 검사하는 것은 불가능합니다. –
더 나은 접근법은 문자열을 가운데로 분할 한 다음 두 번째 부분을 뒤집어 번역하고 (P => A, N => Y, O => H, W => V), 두 부분은 같거나 같지 않습니다. –