문자열에서 마지막 단어의 길이를 구해야 하는 경우가 종종 있습니다. 이를 위해 문자열 앞뒤의 불필요한 공백을 제거한 뒤 문자열을 순회하는 함수를 정의할 수 있습니다. 공백이 나타날 때마다 카운트가 초기화되고, 마지막 단어가 끝나는 시점에 카운터에는 해당 단어의 길이가 저장되어 결과로 반환됩니다.
예제 코드
아래는 실제 동작 예시입니다.
def last_word_length(my_string):
init_val = 0
processed_str = my_string.strip()
for i in range(len(processed_str)):
if processed_str[i] == " ":
init_val = 0
else:
init_val += 1
return init_val
my_input = "Hi how are you Will"
print("The string is :")
print(my_input)
print("The length of the last word is :")
print(last_word_length(my_input))
실행 결과
The string is : Hi how are you Will The length of the last word is : 4
코드 설명
'last_word_length'라는 이름의 함수를 정의하고, 매개변수로 문자열을 전달받습니다.
함수 내부에서 카운터 역할을 할 변수를 0으로 초기화합니다.
strip()메서드를 사용해 문자열 양끝의 불필요한 공백을 제거한 후, 문자열을 한 글자씩 순회합니다.순회 중 공백을 만나면 카운터를 0으로 초기화하고, 그렇지 않으면 1씩 증가시킵니다. 이 방식 덕분에 루프가 끝났을 때 카운터에는 항상 마지막 단어의 길이가 남게 됩니다.
함수 외부에서 예시 문자열을 정의하고 콘솔에 출력합니다.
정의된 함수를 호출하면서 해당 문자열을 인자로 전달합니다.
마지막으로 계산된 결과값을 콘솔에 출력합니다. 예제에서 마지막 단어 'Will'은 네 글자이므로 4가 반환됩니다.
참고로, 파이썬에서는 split() 메서드를 활용해 len(my_input.split()[-1])과 같이 더 간결하게 같은 결과를 얻을 수도 있습니다. 다만 위의 직접 순회 방식은 문자열 처리의 기본 원리를 이해하는 데 유용한 접근법입니다.