[Swift]白駿17413-単語反転2

1528 ワード


質問リンク
出力時にラベル内の文字は反転されず、ラベル外の単語はスペースで区切られているので、この2つを基準にキャプチャします.
反転しないタグはtagで区切り、反転した単語はwordで区切ります.
まず、forループ文で入力した文字列の文字を使用します.
  • タグの先頭「<」であればタグに添付し、ワードが空でなければワードを反転出力する.
  • タグの末尾">"の場合、tagにtagを追加し、tagを出力し、tagを空の文字列に設定します.
  • tagの最初の文字が「<」の場合はtagに追加し、そうでない場合は「」(空白)に追加すると、その逆出力が出力され、両方でない場合は逆にする単語に追加されます.

    プールコード

    
    import Foundation
    
    let a = readLine()!
    
    var tag = ""
    var word = ""
    
    for char in a {
        
        if char == "<" {
            
            tag.append(char)
            if !word.isEmpty {
                print(String(word.reversed()),terminator: "")
                word = ""
            }
            
        } else if char == ">" {
            
            tag.append(char)
            print(tag,terminator: "")
            tag = ""
            
        } else {
            
            if tag.first == "<" {
                tag.append(char)
            } else if char == " " {
                print(String(word.reversed()),terminator: " ")
                word = ""
            } else {
                word.append(char)
            }
        }
    }
    
    if !word.isEmpty {
        print(String(word.reversed()))
    }
    
  • Stringで逆()を使用すると、結果は「逆Collection