프로그래밍 과목에서 다음 연습 문제를 해결하는 동안 문자열 201을 만들 수 없다는 것을 알고 있지만 해결 방법을 상상할 수는 없습니다. 이 예외.0을 제외한 0으로 시작하지 않는 양의 정수 집합
문제점 : L (G)는 0 이외의 0부터 시작하지 않는 양수 십진수입니다. 디자인 문법 G.
내 대답 :
G is:
S -> Digit
NonZeroDigit -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Digit -> 0 | NonZeroDigit | NonZeroDigit 0 | NonZeroDigit Digit
확인 정확성 : 나는이 Digit -> Digit Digit
를 추가 할 경우
Digit => 0
Digit => NonZeroDigit => 1
Digit => NonZeroDigit Digit => 2 Digit => 20
, 그것은 Digit => Digit Digit => Digit Digit Digit => 201
를 만들 것이다, 그러나 이것은 또한 Digit => Digit Digit => Digit Digit Digit => 000
을 만들 수 있습니다. 뭐?
내가 정의한 문법을 어떻게 변경하여 조건을 충족시킬 수 있습니까?
와우 매우 명확한 해결책입니다. 고마워요 : D – youngminz