ปัญหา
ให้ n (ความยาว) และ k (ค่าตัวเลข) หาสตริงเล็กซิโคกราฟิกน้อยที่สุด ค่าตัวอักษร: a=1, b=2, ..., z=26 ค่าสตริง = ผลรวมค่าตัวอักษร
ตัวอย่าง
n=4, k=16 → "aaam" (1+1+1+13=16)
ขั้นตอนการแก้ปัญหา
string := ""- بينما
n > 0:letter := min(26, k - n + 1)string += chr(letter + ord('a') - 1)k -= letter; n -= 1
- คืน
string[::-1](กลับลำดับ)
การนำไปใช้งาน (Python)
def solve(n, k):
string = ""
while n > 0:
letter = min(26, k - n + 1)
string += chr(letter + ord('a') - 1)
k -= letter
n -= 1
return string[::-1]
n = 4
k = 16
print(solve(n, k))
อินพุต
4, 16
เอาต์พุต
aaam