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

3-6-9 ใน Python


สมมติว่าเรามีตัวเลข n เราต้องสร้างรายการที่มีตัวเลขแต่ละตัวตั้งแต่ 1 ถึง n ยกเว้นกรณีที่ผลคูณของ 3 หรือมี 3, 6 หรือ 9 อยู่ใน ตัวเลขควรเป็นสตริง "no-fill"

ดังนั้น หากอินพุตเท่ากับ 20 เอาต์พุตจะเป็น ['1', '2', 'clap', '4', '5', 'clap', '7', '8', 'clap', '10', '11', 'clap', 'clap', '14', 'clap', 'clap', '17', 'clap', 'clap', '20 ']

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

  • string :="ไม่กรอก"

  • ls:=ทำรายการตัวเลขเป็นสตริงตั้งแต่ 1 ถึง n

  • สำหรับฉันในช่วง 0 ถึงขนาด ls - 1 ทำ

    • ถ้า ls[i] หารด้วย 3 ลงตัวแล้ว

      • ls[i]:=สตริง

    • มิฉะนั้นเมื่อมี '3' ใน ls[i] แล้ว

      • ls[i]:=สตริง

    • มิฉะนั้นเมื่อมี '6' ใน ls[i] ดังนั้น

      • ls[i]:=สตริง

    • มิฉะนั้นเมื่อมี '9' อยู่ใน ls[i] ดังนั้น

      • ls[i]:=สตริง

  • กลับ ls

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

ตัวอย่าง

class Solution:
   def solve(self, n):
      string = "no-fill"
      ls=[str(i) for i in range(1,n+1)]
      for i in range(len(ls)):
         if int(ls[i])%3==0:
            ls[i]=string
         elif '3' in ls[i]:
            ls[i]=string
         elif '6' in ls[i]:
            ls[i]=string
         elif '9' in ls[i]:
            ls[i]=string
      return ls
ob = Solution()
print(ob.solve(20))

อินพุต

20

ผลลัพธ์

['1', '2', 'clap', '4', '5', 'clap', '7', '8', 'clap', '10', '11', 'clap', 'clap', '14', 'clap', 'clap', '17', 'clap', 'clap', '20']