返回

Swift 中,查找字符串中的第一个唯一字符

IOS

输入
Swift - LeetCode - 字符串中的第一个唯一字符

    ##参考 
    “我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情” 题目 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例 1## 输出
    

    

    

    **Swift 中,查找字符串中的第一个唯一字符** 

    在 Swift 中,我们可以使用以下步骤来查找字符串中的第一个唯一字符:

    1. 将字符串转换为字符数组。
    2. 遍历字符数组,并使用 Set 来存储已经出现的字符。
    3. 当遇到一个不在 Set 中的字符时,返回该字符的索引。
    4. 如果遍历完整个字符串数组,都没有找到唯一字符,则返回 -1。

    以下是如何将上述步骤实现为一个 Swift 函数:

    ```swift
    func firstUniqueCharacter(_ s: String) -> Int {
        // 将字符串转换为字符数组。
        let chars = Array(s)

        // 使用 Set 来存储已经出现的字符。
        var seenChars: Set<Character> = []

        // 遍历字符数组。
        for (index, char) in chars.enumerated() {
            // 如果字符不在 Set 中,则返回该字符的索引。
            if !seenChars.contains(char) {
                return index
            }

            // 将字符添加到 Set 中。
            seenChars.insert(char)
        }

        // 如果遍历完整个字符串数组,都没有找到唯一字符,则返回 -1。
        return -1
    }
    ```

    以下是几个示例:

    ```swift
    let s1 = "leetcode"
    let result1 = firstUniqueCharacter(s1) // 0

    let s2 = "loveleetcode"
    let result2 = firstUniqueCharacter(s2) // 2

    let s3 = "aabb"
    let result3 = firstUniqueCharacter(s3) // -1
    ```

    如上所示,该函数可以正确地找到字符串中的第一个唯一字符。