สมมติว่าเรามีตัวเลข 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']