2014-09-18 3 views
1

geekforgeeks에 따르면 http://www.geeksforgeeks.org/given-a-string-find-its-first-non-repeating-character/ 한 솔루션은 다음과 같습니다 단지뿐만 아니라 처음의 인덱스는 문자 예 (3 발생 카운트최초의 비 반복 문자

는 "저장하여 카운트 배열을 사용, 'a'는 'a'가 3 번 계산되었고, 처음 본 것은 26 번 위치에 있음을 의미합니다. 따라서 첫 번째 비 반복기를 찾는 경우 카운트 배열을 스캔해야합니다. 문자열 "

괜찮 았지만 누군가가 이것을 제안했다."왼쪽에서 오른쪽으로 이동하는 대신 오른쪽에서 왼쪽으로 이동하고 카운트 배열을 유지하고 한 번만 발생하는 문자의 기록을 유지하십시오.이렇게하면 인덱스 저장 공간이 절약되고 패스가 하나만 필요합니다. "

그게 바로 내가 혼란 스럽다는 것을 의미합니다. 오른쪽에서 왼쪽으로 갈 때의 이점은 무엇이겠습니까?

답변

2

방향 전환시 이점이 없습니다.

첫 번째 단계에서는 문자열과 카운트 문자를 트래버스해야합니다. 어느쪽으로 든 할 것이다. 그것이 나중에 문자로 무효화 할 수 있기 때문에 두 번째 단계에서

당신은, 수를 마지막으로 하나의 문자를 추적 할 수있다 시도 가리 키지 1.

와 목록의 첫 번째 항목을 찾을 수 있습니다. 고려하십시오 "bba" : 오른쪽에서 왼쪽으로 읽는 경우 마지막 문자는 이고 그 다음은 b이되며 두 번째로 무효화됩니다. b.

+0

예. 거꾸로가는 유일한 (작은) 이점은 무조건 위치 배열을 덮어 쓸 수 있다는 것입니다. –