2016-08-23 3 views
0

나는 항공사의 일정을 나타내는 일련의 문자열을했습니다별로 그룹화 요소와 문자열의 중간을 찾을 : 난 항상 "중간"의를 찾을 수 있도록하고 싶습니다 항상 3 자

FLROTP 
MADFCOFCOFLR 
BLQMADMADUIOUIOMADMADBLQ 
MXPJFKJFKMCOJFKMXP 
WAWPSAPSAWAW 
FLRFRAFRASGNSGNBKKBKKVIEVIEFLR 
FLRMUCMUCDELDXBDXBZRHZRHFLR 
FLRFRAFRASINSINMELMELSINSINFRAFRAFLR 
FLRCDGCDGCANCANJJNZHACANCANCDGCDGFLRWNZCANCANZHAHKGAMSFLR 
JFKMTYMTYMEXMEXPTYMDEMDEBOGBOGLIM 
PSAISTISTICNICNNRTNRTISTISTPSANRTISTISTPSA 
MXPDXBDXBPERPERADLADLMELMELASPASPAYQAYQASPASPSYDSYDDXBDXBMXP 
FLRFRAFRAORDORDLASLASBNACLTCLTMUCMUCPSA 
FLRCDGCDGBOGBOGBAQBAQBOGBOGCUCCUCBOGBOGMDEMDEBOGBOGUIOGYELIMLIMHAVHAVCDGCDGFLR 
FLRFRAFRALAXLAXSEASEAORDORDICTICTORDORDCMHCMHBOSBOSMIAMIAFRAFRAFLR 
PSAMUCMUCIADIADGSOGSOCLTCLTMIAMIADFWDFWICTICTDFWDFWCMHCMHPHLPHLALBALBIADIADFRAFRAFLR 
FLRFRAFRAEZEEZESCLSCLGRUCGHSDUSDUPOAPOAGRUGRULIMLIMUIOUIOBOGBOGPTYPTYPOSPOSMIAMIAFRAFRAFLR 
PSACDGCDGHAVHAVPTYPTYUIOUIOMDEMDEBOGBOGBAQBAQBOGBOGCUCCUCBOGBOGCDGCDGFLR 
FLRCDGCDGMEXMEXSJOSJOMEXBJXBJXMEXMEXCDGCDGPSA 

그 끈 (그 경우의 90 %가 승객의 목적지 다.) 그러나 나는 생각이 부족하다. 어떤 도움이 필요합니까? :)

+1

는'string'의 중간 것입니다 ? –

+0

질문은 매우 불분명하지만 재미 있습니다. ['^ (. *) (? :(+) \ 2+)? (. *?) \ 2? \ 1 $'] (https://regex101.com/r/lN5bB9/1) –

답변

1

원하는 것은 문자열의 정확한 중간에있는 인덱스가 아니라 올바른 3 자 코드의 시작을 인덱싱하기 위해 중간에 가장 가까운 인덱스 인 3의 배수입니다.

언어를 지정하지 않았으므로 설명하기 위해 C++ 만 사용합니다.

std::string code = "MXPJFKJFKMCOJFKMXP"; 

문자열의 길이 찾기 다음으로, 정수 연산 (아래 반올림)를 사용하여,

int codecount = length/3; 

중간 코드를 찾기 : 당신이 얼마나 많은 코드

int length = code.size(); 

카운트 0에서 번호가 매겨진 코드 :

int middlecode = codecount/2; 
int index = middlecode * 3; 

중간 코드 가져 오기 : 당신의 중간 코드의 시작 인덱스 찾기코드의 짝수 열의 경우

std::string destination = code.substr(index, 3); 

을, 이것은 하반기에 첫 번째 코드를 줄 것이다 문자열, 예 : 코드의 홀수 열의 경우

MXPJFKJFK MCO JFKMXP

,이 GI 것 중간 코드, 예를 들면했습니다 :

FLRFRAFRAORDORDLAS LAS BNACLTCLTMUCMUCPSA을

(위의 경우에 잘못된 보이지만, 당신은 단지 90 % 말 않았다!)

+0

보기 정확히 내가 원했던 것 : D – Bass

+1

이 사이트에서는 모든 유용한 답변을 upvoting하여 감사를 표합니다. 답의 왼쪽 상단에있는 위쪽 화살표를 클릭하면됩니다. 또한 답의 왼쪽 상단에있는 체크 표시를 클릭하여 가장 좋은 답을 수락하십시오. 그것은 주석에서 감사를 말하는 것보다 낫습니다. –