2011-04-21 4 views

답변

3

뭔가를하는 데 도움이 트릭해야 다음

NSString *longest = nil; 
for(NSString *str in wordlist) { 
    if (longest == nil || [str length] > [longest length]) { 
     longest = str; 
    } 
} 

내가 어떤 간단한 방법을 알고 아니에요을.

+0

빈 문자열을 긴 값의 초기 값으로 사용하면 가장 긴 == nil 테스트를 제거 할 수 있습니다. – taskinoor

+0

좋은 지적. 즉, 가장 긴 == nil, [가장 긴 길이]가 0으로 평가 될지라도 그것에 대해 생각해 보았습니다. 여전히 작동 할 것입니다. –

0

당신은 상단에 두 배열을 정렬하는 this example 같은 것을 사용 (대신 예에서 '품질'종류의 당신의 문자열의 길이 정렬을 사용) 한 후 가장 긴 문자열이 될 것입니다 수 또는 끝에 (당신의 정렬에 따라).

+1

최대 길이 요소를 찾으려면 정렬 하시겠습니까? O (n)에서이 작업을 수행 할 수 있습니다. 그럼 왜 정렬? – taskinoor

+0

사실, Tom의 제안이 훨씬 좋습니다. 그러나 모든 답변에 대해 의견을 말하기보다는 직접 추가해보십시오 :-) – Jake

+0

질문자가 이미 루프 트래버스 솔루션을 알고 있고 더 나은 질문을 찾고 있는지 궁금합니다. 해당 질문에 대한 의견이 있는지 확인하십시오. 그리고 나는 무심코 검사없이 Tom과 같은 대답을 쓸 것입니다. 하지만 누군가가 이미 게시 한 답변으로 스팸을 보내야하는 이유는 무엇입니까? Tom의 대답에 한 가지 주석만으로 충분합니다. 그렇지 않니? – taskinoor

0

나는 어떤 목표도 모르지만, 내 솔루션은 '가장 긴'정수와 'longestWord'문자열을 유지하고 0과 ""로 초기화하는 것입니다. 그런 다음 목록을 반복하고 현재 단어가 '가장 긴'값보다 긴지 확인하십시오. 그럴 경우 새 길이와 현재 단어를 저장하십시오. 루프가 끝나면 'longestWord'변수에 가장 긴 단어가 저장됩니다.

희망이 같은

관련 문제