मुझे Jon Limjap's interview mishap द्वारा उत्सुकता मिली और पालिंड्रोम पहचान करने के कुशल तरीकों की तलाश शुरू कर दी। मैंने palindrome golf उत्तरों की जांच की और मुझे लगता है कि उत्तर में केवल दो एल्गोरिदम हैं, स्ट्रिंग को उलटकर पूंछ और सिर से जांचना।पालिंड्रोम पहचान दक्षता
def palindrome_short(s):
length = len(s)
for i in xrange(0,length/2):
if s[i] != s[(length-1)-i]: return False
return True
def palindrome_reverse(s):
return s == s[::-1]
मैं इन तरीकों में से न तो बहुत बड़ा डीएनए अनुक्रम में सही खोल देना का पता लगाने में किया जाता है लगता है। मैंने थोड़ा सा देखा और इस बारे में कोई मुफ्त लेख नहीं मिला कि इसके लिए एक अति कुशल तरीका क्या हो सकता है।
एक अच्छा तरीका एक विभाजित और जीत दृष्टिकोण में पहले संस्करण को समानांतर कर सकता है, प्रत्येक धागे या प्रोसेसर के लिए चार सरणी 1..एन और लम्बाई -1-एन .. लम्बाई -1 की एक जोड़ी असाइन कर सकता है।
बेहतर तरीका क्या होगा?
क्या आप किसी को जानते हैं?
आप भूल रहे हैं कि हैश लुकअप कुंजी की लंबाई में रैखिक है और चूंकि हैश गणना कुछ अंकगणित का उपयोग करती है, यह वास्तव में चार-दर-तुलना तुलना से कम कुशल है। इसके अलावा चंकिंग भी आपकी मदद नहीं करेगी, भले ही आप प्रत्येक मिस के लिए आंशिक रूप से बेकार हो जाएं, आपके पास बहुत अधिक बर्बाद काम होगा और हिट की तुलना में बहुत अधिक यादें हैं। केंद्र से तुलना करना अधिक कुशल है क्योंकि आप जल्दी ही जमानत दे सकते हैं। – ZXX