일치하는 부분 찾기

일치하는 부분 찾기

QA

일치하는 부분 찾기

답변 1

본문

일치하는 부분을 찾으려고 하는데,
이게 생각보다 어렵네요 ㅠㅠ
아래 조건을 보고 예제1,예제2의 원하는 결과를 얻고자 합니다.
도와주시면 정말 감사하겠습니다.

조건 시작-----------------
-$s01,$s02에서 6글자이상 일치하는부분을 최대로 찾음
-첫번째 일치하는 부분을 최대로 찾은 경우, 다음 시작하는 글자의 범위가 첫번째 일치하는 부분의 최대값 다음부터 시작
-$s01을 기준으로 순서도 일치해야함
-공백,특수문자는제거
조건 끝-------------------

예제1 시작-------------------------------
$s01="aaaaaabbbbbbcccccc";
$s02="bbbbbbccccccdddddd";

원하는 결과
$s01="aaaaaa[bbbbbbcccccc]";
$s02="[bbbbbbcccccc]dddddd";

예제1 끝---------------------------------

예제2 시작-------------------------------------------------------
$s01="그사람도자신이잘못했다는것을인정하며미안하다고말했습니다";
$s02="본인이잘못했다는것을그사람도인정하며미안하다고말했습니다";

원하는 결과
$s01="그사람도자신이[잘못했다는것을][인정하며미안하다고말했습니다]";
$s02="본인이[잘못했다는것을]그사람도[인정하며미안하다고말했습니다]";

예제2 끝-------------------------------------------------------

이 질문에 댓글 쓰기 :

답변 1

꽤 어려운 알고리듬이네요.

 

먼저 $s01 스트링에서 0부터 5까지의 문자를 가져와서 $s01_match,

루프 

$s01_match와 $s02를 비교함

맞는 게 있으면

   루프

   $s01_first에 $s01_match뒤에 한글자 추가후 비교

       틀리면

           $s02에 매칭에 []로 추가함.

           break.

맞는게 없으면

0번째 글자 빼고, 끝에 문자 추가함. (1에서 6까지)

 

대략 이런식의 알고리듬을 짜야 될 것 같습니다.  중간 중간 변수 프린트해가면서 구현해 보세요.  현재의 index pointer를 잘 콘트롤하는 것이 중요하고.  뒤에도 같은 말이 나왔을 때 어떻게 처리해야 될지도 고민을 해 봐야 될 것 같네요.(앞의 8자로 매칭했는데,  뒤에서 6자로 매칭이 나오는 예외 경우)

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 86
© SIRSOFT
현재 페이지 제일 처음으로