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