class Point:
"""Клас для імітації вузла зв'язаного списку."""
def __init__ ( self , elem= None , next_node= None ) :
self .elem = elem
self .next = next_node
print ( "\n Please, enter chars until y symbol\n " )
st = input ( )
if not st:
print ( "Введено порожній рядок." )
exit( )
i = 0
ch = st[ i]
vslov = Point( )
vslov.elem = ch
vslov.next = None
vlan = vslov
last_char = ch
while True :
if i + 1 >= len ( st) :
break
i += 1
ch = st[ i]
print ( ch, end= "" )
vlan.next = Point( )
vlan = vlan.next
vlan.elem = ch
vlan.next = None
last_char = ch
if ch.lower ( ) == 'y' :
break
formed_string = ""
vlan = vslov
while vlan is not None :
if vlan.elem is not None :
formed_string += vlan.elem
vlan = vlan.next
print ( "\n \n Сформований динамічний рядок:" , formed_string)
first_char = vslov.elem
is_start_y = first_char.lower ( ) == 'y'
is_end_y = last_char.lower ( ) == 'y'
print ( "\n --- Результат Перевірки ---" )
if is_start_y and is_end_y:
print ( "Рядок починається ТА закінчується літерою 'Y'/'y'." )
else :
print ( "Умова не виконана: рядок не починається або не закінчується 'Y'/'y'." )
Y2xhc3MgUG9pbnQ6CiAgICAiIiLQmtC70LDRgSDQtNC70Y8g0ZbQvNGW0YLQsNGG0ZbRlyDQstGD0LfQu9CwINC30LIn0Y/Qt9Cw0L3QvtCz0L4g0YHQv9C40YHQutGDLiIiIgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGVsZW09Tm9uZSwgbmV4dF9ub2RlPU5vbmUpOgogICAgICAgIHNlbGYuZWxlbSA9IGVsZW0KICAgICAgICBzZWxmLm5leHQgPSBuZXh0X25vZGUKCgpwcmludCgiXG5QbGVhc2UsIGVudGVyIGNoYXJzIHVudGlsIHkgc3ltYm9sXG4iKQpzdCA9IGlucHV0KCkKCmlmIG5vdCBzdDoKICAgIHByaW50KCLQktCy0LXQtNC10L3QviDQv9C+0YDQvtC20L3RltC5INGA0Y/QtNC+0LouIikKICAgIGV4aXQoKQoKaSA9IDAKY2ggPSBzdFtpXQp2c2xvdiA9IFBvaW50KCkKdnNsb3YuZWxlbSA9IGNoCnZzbG92Lm5leHQgPSBOb25lCnZsYW4gPSB2c2xvdgpsYXN0X2NoYXIgPSBjaCAKCgp3aGlsZSBUcnVlOgogICAgCiAgICBpZiBpICsgMSA+PSBsZW4oc3QpOgogICAgICAgIGJyZWFrIAogICAgICAgIAogICAgaSArPSAxCiAgICBjaCA9IHN0W2ldCiAgICBwcmludChjaCwgZW5kPSIiKQogICAgCiAgICB2bGFuLm5leHQgPSBQb2ludCgpCiAgICB2bGFuID0gdmxhbi5uZXh0CiAgICB2bGFuLmVsZW0gPSBjaAogICAgdmxhbi5uZXh0ID0gTm9uZQogICAgbGFzdF9jaGFyID0gY2gKICAgIAogICAgaWYgY2gubG93ZXIoKSA9PSAneSc6IAogICAgICAgIGJyZWFrCmZvcm1lZF9zdHJpbmcgPSAiIgp2bGFuID0gdnNsb3YKd2hpbGUgdmxhbiBpcyBub3QgTm9uZToKICAgIGlmIHZsYW4uZWxlbSBpcyBub3QgTm9uZToKICAgICAgICBmb3JtZWRfc3RyaW5nICs9IHZsYW4uZWxlbQogICAgdmxhbiA9IHZsYW4ubmV4dAoKcHJpbnQoIlxuXG7QodGE0L7RgNC80L7QstCw0L3QuNC5INC00LjQvdCw0LzRltGH0L3QuNC5INGA0Y/QtNC+0Lo6IiwgZm9ybWVkX3N0cmluZykKZmlyc3RfY2hhciA9IHZzbG92LmVsZW0KaXNfc3RhcnRfeSA9IGZpcnN0X2NoYXIubG93ZXIoKSA9PSAneScKaXNfZW5kX3kgPSBsYXN0X2NoYXIubG93ZXIoKSA9PSAneScKCnByaW50KCJcbi0tLSDQoNC10LfRg9C70YzRgtCw0YIg0J/QtdGA0LXQstGW0YDQutC4IC0tLSIpCmlmIGlzX3N0YXJ0X3kgYW5kIGlzX2VuZF95OgogICAgcHJpbnQoItCg0Y/QtNC+0Log0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQotCQINC30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQu9GW0YLQtdGA0L7RjiAnWScvJ3knLiIpCmVsc2U6CiAgICBwcmludCgi0KPQvNC+0LLQsCDQvdC1INCy0LjQutC+0L3QsNC90LA6INGA0Y/QtNC+0Log0L3QtSDQv9C+0YfQuNC90LDRlNGC0YzRgdGPINCw0LHQviDQvdC1INC30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyAnWScvJ3knLiIp