Hash tablosu kullanılabilir. Hatalı yazımları tabloya doldurursun, hash tablosunun her bir elemanı için linked list oluşturursun ve doğru yazımlarını da linked list'in ikinci elemanı yaparsın. Sonrasında metinden string okuması yaparsın, aynı hash değeri için linked list'in ikinci elemanını return edersin.
Biraz karışık oldu sanırım. Kısacası çeşitli veri yapıları kullanarak programı optimize etmen gerekiyor. Yoksa her yazım için tek tek karşılaştırma yaparsan program efektif bir şekilde çalışmaz.