문자열 반전
문제 설명: 주어진 문자열에서 단어를 뒤집는 함수를 작성하십시오. 또한 파이썬 내장 함수를 사용하지 않고 솔루션을 제공하십시오.
난이도: 쉬움
제약
예
예
예
테스트 케이스
연산
솔루션 1
솔루션 2 : split 기능을 사용하지 않고
words
목록을 초기화합니다. word_start
를 문자 인덱스로 설정i
word_start
에서 i
까지를 단어 목록i
솔루션 3 : 한 줄 파이썬 솔루션(내장 함수 사용)
split
함수를 사용하여 문자열을 공백으로 분할하고 슬라이스 연산을 사용하여 목록을 반전하고 마지막으로 join
함수를 사용하여 반전된 문자열을 반환합니다. 시간 및 공간 복잡성
솔루션 1
솔루션 2
암호
class SentenceReversal(object):
def sentenceReversal(self, string):
if string is None:
return None
words = string.split()
size = len(words)
for word in range(size//2):
words[word], words[size - 1 - word] = \
words[size - 1 - word], words[word]
return " ".join(words)
def sentenceReversal2(self, string):
if string is None:
return None
words = []
size = len(string)
spaces = [' ']
i = 0
while i < size:
if string[i] not in spaces:
word_start = i
while i < size and string[i] not in spaces:
i += 1
words.append(string[word_start:i])
i += 1
return " ".join(words[::-1])
def sentenceReversal3(self, string):
if string is None:
return None
return " ".join(string.split()[::-1])
단위 테스트
import unittest
from sentenceReversal import SentenceReversal
class TestSentenceReversal(unittest.TestCase):
def testSentenceReversal(self, func):
self.assertEqual(func(None), None)
self.assertEqual(func(' space before plague'), 'plague before space')
self.assertEqual(func('space after '), 'after space')
self.assertEqual(func(' Hello John how are you ?'),
'? you are how John Hello')
self.assertEqual(func('1'), '1')
print("ALL TEST CASES PASSED")
def main():
test = TestSentenceReversal()
sent = SentenceReversal()
test.testSentenceReversal(sent.sentenceReversal)
test.testSentenceReversal(sent.sentenceReversal2)
if __name__ == "__main__":
main()
Original article
Github solution
행복한 코딩!
Reference
이 문제에 관하여(문자열 반전), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codewithml/string-reversal-2ecb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)