def truncate_string(str, N):
substr = str[0: N]
last_alpha = 0
for i in range(0, N - 1):
if str[i].isalpha() and not str[i+1].isalpha():
last_alpha = i
return substr[0: last_alpha + 1] + "…"
print(truncate_string("Lorem ipsum dolor sit amet!! Consectetur?! Adipiscing elit... Nam tincidunt ultricies congue (turpis duis).", 40))
ZGVmIHRydW5jYXRlX3N0cmluZyhzdHIsIE4pOgogICAgc3Vic3RyID0gc3RyWzA6IE5dCiAgICBsYXN0X2FscGhhID0gMAogICAgZm9yIGkgaW4gcmFuZ2UoMCwgTiAtIDEpOgogICAgICAgIGlmIHN0cltpXS5pc2FscGhhKCkgYW5kIG5vdCBzdHJbaSsxXS5pc2FscGhhKCk6CiAgICAgICAgICAgIGxhc3RfYWxwaGEgPSBpCiAgICByZXR1cm4gc3Vic3RyWzA6IGxhc3RfYWxwaGEgKyAxXSArICLigKYiCiAgICAKcHJpbnQodHJ1bmNhdGVfc3RyaW5nKCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCEhIENvbnNlY3RldHVyPyEgQWRpcGlzY2luZyBlbGl0Li4uIE5hbSB0aW5jaWR1bnQgdWx0cmljaWVzIGNvbmd1ZSAodHVycGlzIGR1aXMpLiIsIDQwKSk=