【力扣】389.找不同

简介: 【力扣】389.找不同

389.找不同

题目描述

给定两个字符串 st ,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

示例 1:

输入:s = “abcd”, t = “abcde”

输出:“e”

解释:‘e’ 是那个被添加的字母。

示例 2:

输入:s = “”, t = “y”

输出:“y”

提示:

  • 0 <= s.length <= 1000
  • t.length == s.length + 1
  • s 和 t 只包含小写字母

解题方法

  • C 字母表
char findTheDifference(char* s, char* t) {
    int alphabet[26] = {0};
    int i = 0;

    for (i = 0; i < strlen(s); i++) {
        alphabet[s[i] - 'a']++;
    }

    for (i = 0; i < strlen(t); i++) {
        alphabet[t[i] - 'a']--;
    }

    for (i = 0; i < 26; i++) {
        if (alphabet[i] < 0) {
            return i + 'a';
        }
    }
    return 'a';
}

复杂度分析

时间复杂度为 O(N),其中 N 为字符串的长度。

空间复杂度为 O(∣Σ∣),其中 Σ 是字符集 26。

  • C 求两个字符串各自 ASCII 总和、再求差
char findTheDifference(char* s, char* t) {
    int ss = 0, st = 0;
    int i = 0;

    for (i = 0; i < strlen(s); i++) {
        ss += s[i];
    }

    for (i = 0; i < strlen(t); i++) {
        st += t[i];
    }

    return st - ss;
}

复杂度分析

时间复杂度为 O(N)。

空间复杂度为 O(1)。

相关文章
|
算法 Python
打卡力扣题目七
打卡力扣题目七
|
算法 测试技术
打卡力扣题目十
打卡力扣题目十
|
存储 算法
打卡力扣题目三
打卡力扣题目三
|
存储 搜索推荐 算法
【C/C++ 力扣leetcode】4道简单题
【C/C++ 力扣leetcode】4道简单题
|
存储 算法
打卡力扣题目四
打卡力扣题目四
|
算法 Python
打卡力扣题目六
打卡力扣题目六

热门文章

最新文章