383. 赎金信

27 阅读1分钟

383. 赎金信

简单

相关标签

premium lock icon相关企业

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

 

示例 1:

输入: ransomNote = "a", magazine = "b"
输出: false

示例 2:

输入: ransomNote = "aa", magazine = "ab"
输出: false

示例 3:

输入: ransomNote = "aa", magazine = "aab"
输出: true

 

提示:

  • 1 <= ransomNote.length, magazine.length <= 105
  • ransomNote 和 magazine 由小写英文字母组成

题解:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int i = 0;
    int nums[26] = {0};
    char xiao[100000] = {'\0'};
    char da[100000] = {'\0'};
    scanf("%s", xiao);
    scanf("%s", da);

    while (da[i] != '\0')
    {
        nums[da[i] - 'a'] ++;
        i ++;
    }
    
    i = 0;
    while (xiao[i] != '\0')
    {
        if (nums[xiao[i] - 'a'] > 0)
        {
            nums[xiao[i] - 'a'] --;
            i ++;
        }
        else
        {
            printf("false");
            return 0;
        }
    }

    printf("true");

    return 0;
}