나는 쉽게 할 수있는 바보 같은 연습 문제를 발견했다. 그래서 나는 그것을 할 수있을 것이라고 생각했다. 전제는 진단을하기 위해 의사가 환자의 말을 듣지 않으면 안되지만 환자의 aah는 의사가 요청한 aah와 일치해야한다는 전제가 있습니다. 의사가 아아아아를 구하고 환자가 아라고 말하면 진단을 내릴 수 없습니다. Haskell 프로그램은 의사와 환자 aah를 순서대로 읽어야하고 진단을받을 수 있다면 Bool 값을 반환해야합니다. 처음에 나는 그들이 동일하게 필요하다고 생각 그래서 이것은 내 코드이었다하스켈에서 두 개의 문자열 비교하기
seeDoctor :: String -> String -> Bool
seeDoctor a b = if a == b then True
else False
그러나, 나는이 문제의 모든 규칙을 따르지 않는 것을 깨달았다 그것은 그렇게 간단하지 않았다. 환자는 의사보다 오랫동안 aah를 말하고 True를 반환 할 수 있습니다. "aah" "aaaah"는 True를 반환하고 "aaah"및 "h" "aah"는 반환하지만 "aaah" "ah"는 False를 반환합니다. 그러나 의사가 자신의 aah에 'h'를 포함시키지 않더라도 환자는 반드시해야하므로 "a" "a"는 거짓을 반환하지만 내 코드는 True를 반환합니다. 환자가 아무 말도하지 않는다면 'a'다음에 'h'가 하나 있어야하고 다른 문자가 없어야합니다. 제가 제안한 테스트 사례를 시작하기 시작한 후에는 제가 이해하지 못하는 것을 깨달았습니다. 각 문자열에 'a'수를 유지할 수 있습니까? 여분의 문자는 어떻게 확인합니까? 죄송합니다. 읽으려면 시간이 좀 걸립니다. 여기까지 와줘서 고마워. 여기
정확한 질문이다 ". 때로는 의사가 말을 우리에게 필요합니다"아아 아아 "우리가 의사에게 갈 때, 의사가 항상 말을 우리에게 묻습니다"aaaaaah "하지만, 우리는 "aaah"라고 대답 할 수 있습니다.이 경우 우리는 "우리의"aaah "의 a가 자신의 요구 사항보다 적기 때문에 우리의 질병을 진단 할 수 없습니다. 이제는 하스켈이라는 함수를 작성하십시오. 의사가 우리의 "aah"로 진단 할 수 있다면 의사를 판단하십시오 함수의 입력은 두 개의 문자열로 구성됩니다. 첫 번째 문자열은 의사가 필요하고 두 번째 문자열은 우리가 말할 수있는 "aah"입니다. "aah"가 의사의 요구 사항을 충족하면 "True"를 출력하고 그렇지 않은 경우 은 "False"를 출력합니다. 이 테스트에 통과해야 "참"단지 '의와'시간의가 사용되는 소문자, 각 문자열은 시간 '. "당신 이후
요청을 그대로 게시 할 수 있습니까? 당신이 그것을 묘사하는 방식은 분명하지 않습니다. –
그래서 올바르게 이해하면 두 문자열의 형식은'a * h *'(정규 표현식,'*'는 이전 문자 중 임의의 숫자를 의미 함),'a '와'h 요청한 아아보다 크거나 같아야합니까? –
'seeDoctor "foo" "aaaaaaaah"'의 출력은 무엇이되어야합니까? –