力扣(LeetCode)771.宝石与石头

力扣(LeetCode)771.宝石与石头(C语言)

渡航的学习日记

点击查看:

题目 宝石与石头 内容描述 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。 示例 1 输入: J = “aA”, S = “aAAbbbb” 输出: 3 示例 2 输入: J = “z”, S = “ZZ” 输出: 0 注意 S 和 J 最多含有50个字母。J 中的字符不重复。

很简单的一道入门题,主要考察了字符指针的用法,难点就是关于如何使指针在两次for循环中回到起点。 以下为我的代码:

int numJewelsInStones(char * J, char * S)
{
          
   
    char *s=S;                  *定义一个指针指向S的头部*
    int i=0;          
    for(;*J!=;J++)
    {
          
   
        for(;*S!=;S++)
        {
          
   
            if(*J==*S)          *判断是否有相等的字符*
                i++;
        }
        S=s;                    *把指针S重新指向数组头部*
    }

    return i;                   *返回值*
}
经验分享 程序员 微信小程序 职场和发展