با توجه به عدد صحیح ورودی، طبق قوانین زیر یک عدد جدید به دست آورید:
- عدد را به گروههای دو رقمی تقسیم کنید. اگر عدد دارای تعداد ارقام فرد باشد،
"invalid"
را برگردانید. - برای هر گروه دو رقمی، رقم آخر را به تعداد دفعاتی که مقدار رقم اول است به یک رشته جدید اضافه کنید.
- نتیجه را به صورت یک عدد صحیح برگردانید.
look_and_say(3132) ➞ 111222
# با خواندن عدد به صورت رقم به رقم، سه "1" و سه "2" به دست میآید.
# بنابراین، سه تا یک و سه تا دو کنار هم قرار میگیرند.
نمونه ورودی و خروجی
LookAndSay(95) ➞ "555555555"
LookAndSay(1213141516171819) ➞ "23456789"
LookAndSay(120520) ➞ "200"
EXPECT_EQ(LookAndSay(95), "555555555"); EXPECT_EQ(LookAndSay(1213141516171819), "23456789"); EXPECT_EQ(LookAndSay(120520), "200"); EXPECT_EQ(LookAndSay(231), "invalid");
نظرات