Swift-단어 순서 뒤집기

1398 단어
제목: 영문 문장을 입력하고 문장 중의 단어의 순서를 뒤집지만 단어 안의 문자의 순서는 변하지 않는다.간단하게 보기 위해 문장부호는 일반 자모와 같이 처리한다.예를 들어, 문자열 "I am a student."를 입력합니다.그러면 "student. a am I"가 출력됩니다.핵심 코드:
` 
 
func reversePosition(strArr:inout [Character],begin:Int,end:Int)  {
    var low:Int = begin
    var high:Int = end
    while low < high {
        swap(&strArr[low], &strArr[high])
        low += 1
        high -= 1
    }
}

func reverseSentence(str:String) -> String {
    var strArr:[Character] = [Character]()
    for c in str.characters {
        strArr.append(c)
    }
    reversePosition(strArr: &strArr, begin: 0, end: str.characters.count - 1)
    
    var start:Int = 0
    var end:Int = 0
    
    
    while end < strArr.count {
        if String(strArr[start]) == " " {
            start += 1
            end += 1
        } else if String(strArr[end]) == " " {
             reversePosition(strArr: &strArr, begin: start, end: end-1)
             start = end
        } else {
            end += 1
        }
    }
    
    return String(strArr)
    
}`
테스트 코드:
var orginalStr:String = "I am FlyElephant" var reverseString:ReverseString = ReverseString() var reverseResult:String = reverseString.reverseSentence(str: orginalStr) print("        ---\(reverseResult)---")

좋은 웹페이지 즐겨찾기