이것은 이전의 노력 (wordEnds
및 repeatEnd
)과 유사합니다. 정신 운동으로 정규 장난감을 사용하여 장난감 문제를 해결하고 싶습니다.codingBat plusOut using regex
Description from codingbat.com : 문자열과 비어 있지 않은 단어 문자열을 감안할 때
이 단어 문자열의 외관을 제외한 모든 문자가 흑자 (
"+"
를)로 대체 된 원래 문자열의 버전을 반환하는 변경되지 않고 보존됩니다. 중복을 허용할지 여부에 대한 언급이 없습니다plusOut("12xy34", "xy") → "++xy++" plusOut("12xy34", "1") → "1+++++" plusOut("12xy34xyabcxy", "xy") → "++xy++xy+++xy"
(? plusOut("+xAxAx+", "xAx")
것입니다 예를 들어), 그러나 나의 비 정규식 솔루션은 중복을 처리하지 않습니다 그것은 통과, 그래서 우리가 비 가정 할 수 있습니다 추측 오버레이가 발생하면 word
으로 단순화됩니다 (두 변종에 대한 솔루션을 제공하면 보너스 포인트가 적용됩니다!).
어쨌든이 정규식을 사용하여 (다른 두 가지 문제로 이전에했던 것과 같은 스타일의) 문제를 해결하고 싶습니다. 그러나 나는 완전히 혼란 스럽습니다. 나는 아무것도 보이지 않는다. 왜냐하면 나는 아무 것도하지 못하기 때문이다.
그럼 stackoverflow 커뮤니티가 무엇인지 생각해 봅시다.
나는'\ G'를 뒤돌아 보면서 놀랐다. (이전 문자가 일치하지 않으면'word'의 범위 내에 있다면 일치 할 수 없다.), 아마도 해결할 수있다. 논 오버랩 변이 형. 또한 이전에 나는 또한 당신과 비슷한 것을 시도했지만 유한 rep (그것은'repeatBegin'과 함께했던 문제이기도합니다) 후에 긍정적 인 미리보기를 넣는 실수로 시도했습니다. 어쨌든, 다시 잘 했어! 나는 이것을 doublevote 할 수 있으면 좋겠다! – polygenelubricants
한 가지 질문 :'\ Q'와'\ E'를 사용하여 임의의 입력 문자열을 인용하는 것이 얼마나 안전할까요? 예를 들어,''\\ E ''와 같이 단어가''\\ E' '이면 해결책이 깨질 것입니다. – polygenelubricants
@poly : 예, 완전히 안전하려면'wordEnds' 솔루션에서했던 것처럼'quote()'메소드를 사용해야합니다. 그것은 실제로'\ Q'와'\ E'를 추가함으로써 작동하지만 이미 존재할 수도있는'\ E'를 이스케이프합니다. –