প্রথমেই আমাদের একটা prefix / π table তৈরি করতে হবে। এই টেবিলের সাইজ হবে প্যাটার্নের সাইজের সমান আর অ্যারের প্রত্যেকটা ঘরে থাকবে শুরু থেকে ওই ইনডেক্স পর্যন্ত সাবপ্যাটার্নের জন্যে যে longest proper prefix ও longest proper suffix ম্যাচ করে, তার দৈর্ঘ্য। এর জন্যে আমরা একটা ফাংশন বানাব, যার নাম দিতে পারি kmp_preprocess