Biraz terbiyesiz olmak için, belirtilen özellikleri aşağıdaki algoritmayı öneririm:
def trailing_number(s):
results = list()
for char in reversed(s):
if char.isalpha(): break
if char.isdigit(): results.append(char)
return ''.join(reversed(results))
Bu karşılaştığında ilk harfine dize yukarı ucundan sadece rakam döndürür.
Ben yaklaşık olarak iyi PHP bilmiyorum çünkü Tabii ki bu örnekte, Python olduğunu. Ancak kolayca kavram olarak tercüme edilmelidir yeterince kolaydır ... dize ters (veya başından doğru sonundan yineleme) ve rakam birikir bir mektup bulmak ve kırılıncaya kadar (veya başında döngünün dışına düşmek string).
C biz kırmak ya da başında döngünün damlasına kadar en son karşılaşılan hanede bir işaretçi tasarruf dize geriye doğru yürümek biraz for(x=strlen(s);x>s;x--)
gibi bir şey kullanmak daha verimli olacaktır dize. Sonra bizim en son (en soldaki) haneli bulundu dize ortasına işaretçisidir.