2013-07-23 7 views
7

के भीतर सबसे लंबी स्ट्रिंग ढूंढना मेरे पास 200,000 शब्दों से भरा एनएसएआरएआर है और मुझे प्रत्येक शब्द की लंबाई नहीं पता है। मुझे यह जानने की जरूरत है कि उस सरणी में निहित शब्द की अधिकतम लंबाई क्या है।एनएसएआरएआर

उदाहरण के लिए, अगर मेरे सरणी { "कुत्ता", "व्यक्ति", "अद्भुत"} है एक शब्द भी इस सरणी में निहित की अधिकतम लंबाई 7 ("अद्भुत")

होगा मैं कैसे होगा यह करो?

+1

सरणी के माध्यम से बसने और सबसे लंबे तत्व की तलाश करने की तुलना में कोई तकनीक तेज नहीं है। –

+0

@ होट्लिक्स रामी के उत्तर – MZimmerman6

+0

@ MZimmerman6 देखें - मैं शर्त लगा सकता हूं कि वह दृष्टिकोण धीमा है। –

उत्तर

23

सभी तरीकों कि सरणी पर पुनरावृत्ति मतलब इसके अलावा, आप आसानी से इस valueForKeyPath: साथ कर सकते हैं, @max संग्रह ऑपरेटर का उपयोग:

NSNumber* maxLength= [array valueForKeyPath: @"@max.length"]; 
+0

मैं उत्सुक हूं कि यह कैसे काम करता है। क्या आप थोड़ा और समझा सकते हैं ?? – BlueMeanie

+1

@ ब्लूमेनी यह संभव है क्योंकि सभी संग्रह कुछ ऑपरेटर जैसे अधिकतम (सर्पिल उद्धरण से बचने के लिए छोड़े गए) को लागू करते हैं, औसत, गिनती आदि ... यहां संदर्भ है: http://developer.apple.com/library/ios/# दस्तावेज/कोको/अवधारणात्मक/KeyValueCoding/आलेख/संग्रहऑपरेटर्स.html –

12

आप इस

कोशिश कर सकते हैं सबसे लंबा शब्द लंबाई को खोजने के लिए

NSArray *wordList = [NSArray arrayWithObjects:@"dog", @"person", @"amazing", nil]; 

int maxLen, strLen; 
for(NSString *str in wordList) { 
    strLen = [str length]; 
    if (strLen > maxLen) { 
     maxLen = strLen; 
    } 
} 
NSLog(@"Longest Word Length = %d", maxLen); 

लंबे जानने के लिए शब्द

NSArray *wordList = [NSArray arrayWithObjects:@"dog", @"person", @"amazing", nil]; 

NSString *longestWord = nil; 
for(NSString *str in wordList) { 
    if (longestWord == nil || [str length] > [longestWord length]) { 
     longestWord = str; 
    } 
} 
NSLog(@"Longest Word = %@", longestWord); 
+0

तेज गणना कुंजी-मूल्य कोडिंग से तेज़ी से प्रतीत होती है, लेकिन मैं सबसे लंबे समय तक * लंबाई * की बजाय सबसे लंबी * लंबाई * रखूंगा, ताकि '[सबसे लंबा तार लंबाई] 'बार-बार गणना की जाती है। –

+0

या यदि आप एकाधिक कॉल से बचना चाहते हैं, तो आप दोनों को स्टोर करना चाहते हैं, लेकिन यदि आप अभी भी अंत में वास्तविक शब्द चाहते हैं तो आप दोनों को स्टोर करें ['longestWord length]' से बचाना चाहते हैं। –

संबंधित मुद्दे