2017-11-08 14 views
-3

私は最初の繰り返し文字を迅速に見つけようとしていて、見つかった文字を返しています。私はこのコードでエラーの束を取得している、私はなぜこれが動作していないか分からない。Returnスウィフトの繰り返し文字

var myArry = "Hello, World" 
var counts = [Character]() 

func findRepeating(myArry: String) -> Character 
{ 
    counts = [] 
    for char in myArry.characters 
    { 
     if char in counts 
     { 
      print("Character found") 
      return char 
     } 
     else 
     { 
      counts.append(char) 
     } 
    } 
    return "A" 
} 
+2

'VARカウント= {}'何をするはずですか?配列の詳細と初期化方法については、Swiftの本を参照してください。 – rmaddy

+0

@rmaddy見つかった文字を保存する辞書 –

+0

辞書についてはSwiftの本を読んでください。 – rmaddy

答えて

0

辞書を使用する必要はありません。一連の文字を使用して、ループ内のセット内の各文字を挿入することができます。 set挿入メソッドは、挿入が成功したかどうかを示すbool insertedシグナリングを返します。成功していないが、その文字を返すそのループ上の早期終了を行う場合:

extension String { 
    var firstRepeating: Character? { 
     var set: Set<Character> = [] 
     for char in self { 
      if !set.insert(char).inserted { 
       return char 
      } 
     } 
     return nil 
    } 
} 

let myString = "Hello, World" 

if let firstRepeating = myString.firstRepeating { 
    print(firstRepeating) // "l\n" 
} 
+0

私のコードを今更新するつもりです、それを確認できますか?配列を使用していて、配列にcharを追加して、配列に文字がすでに含まれているかどうかを確認します。しかし、まだ動作していません... –

0

ほとんどの単純な答え:

let str = "abcdefghijkhlmnop" 
var count = 0 
for char in str.characters { 
    for charNext in str.characters { 
     if (char == charNext) { 
      count += 1 
      if (count > 1) { 
       return char   // h 
      } 
     } 
    } 
    count = 0 
} 
+0

文字列プロパティは非推奨です** Xcode 9.1•Swift 4.1 ** –

関連する問題