Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาคำนำหน้าทั่วไปที่ยาวที่สุดจากรายการสตริงใน Python


สมมติว่าเรามีรายการสตริงตัวพิมพ์เล็ก เราต้องหาคำนำหน้าร่วมที่ยาวที่สุด

ดังนั้น หากอินพุตเป็นเหมือน ["antivirus", "anticlockwise", "antigravity"] ผลลัพธ์จะเป็น "anti"

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

จัดเรียงคำในรายการตามลำดับตัวอักษร

  • คำนำหน้า :=รายการใหม่
  • ธง :=0
  • สำหรับฉันในช่วง 0 ถึงขนาดของคำ[0] ทำ
    • สำหรับแต่ละ j ในคำ do
      • ถ้า j[i] ไม่เหมือนกับองค์ประกอบสุดท้ายของคำนำหน้า ดังนั้น
        • ลบองค์ประกอบสุดท้ายออกจากคำนำหน้า
        • ธง :=1
        • ออกมาจากวงจร
    • ถ้าแฟล็กเหมือนกับ 1 แล้ว
      • ออกมาจากวงจร
  • ส่งกลับสตริงหลังจากเชื่อมองค์ประกอบทั้งหมดที่มีอยู่ในอาร์เรย์คำนำหน้า

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, words):
      words.sort()
      prefix = []
      flag = 0
      for i in range(len(words[0])):
         prefix.append(words[0][i])
         for j in words:
            if j[i] != prefix[-1]:
               prefix.pop()
               flag = 1
               break
         if flag == 1:
            break
         return ''.join(prefix)
ob = Solution()
words = ["antivirus", "anticlockwise", "antigravity"]
print(ob.solve(words))

อินพุต

["antivirus", "anticlockwise", "antigravity"]

ผลลัพธ์

anti