宝石与石头(771)

2024-02-19 10:32
文章标签 石头 宝石 771

本文主要是介绍宝石与石头(771),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。

示例 1:

输入: J = “aA”, S = “aAAbbbb”
输出: 3
示例 2:

输入: J = “z”, S = “ZZ”
输出: 0
注意:

S 和 J 最多含有50个字母。
J 中的字符不重复。

题解:
1
public class Solution
{
public int NumJewelsInStones(string jewels, string stones)
{
int Number=0;
for(int i=0;i<jewels.Length;i++)
{
for(int j=0;j<stones.Length;j++)
{
if(jewels[i]==stones[j])
{
Number++;
}
}
}
return Number;
}
}
2
首先,把字符串S和J都转换成char[],然后嵌套两个for循环,拿S的每个元素和J的每个元素相匹配,匹配成功加一。

public class Solution {
public int NumJewelsInStones(string J, string S) {
char[] goldstone = J.ToCharArray();
char[] stone = S.ToCharArray();
int sum = 0;
for(int i =0; i < stone.Length;i++)
{
for(int j = 0; j < goldstone.Length;j++)
{
if(stone[i] == goldstone[j])
{
sum++;
}
}
}
return sum;
}
}
3\ 最简单的思路,遍历石头,检查石头是不是宝石。
宝石存成char[],石头存成List,以便把已经判断为宝石的石头从石头中拿出,减少循环比较的次数。
同时别忘了在拿出宝石的同时下标前移一位。

public int NumJewelsInStones(string J, string S) {
char[] charJ = J.ToCharArray();
List charS = S.ToList();
int result = 0;
for (int i = 0; i < charJ.Count(); i++)
{
for (int j = 0; j < charS.Count(); j++)
{
if (charJ[i] == charS[j])
{
result++;
charS.Remove(charS[j]);
j–;
}
}
}
return result;
}

这篇关于宝石与石头(771)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/724389

相关文章

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接

力扣1049-最后一块石头的重量II(Java详细题解)

题目链接:1049. 最后一块石头的重量 II - 力扣(LeetCode) 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包,所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂01背包的话,建议可以去学一学,01背包问题可以说是背包问题的基础。 如果大家感兴趣,我后期可以出一篇专门讲解01背包问题。 dp五部曲。 1.确

代码随想录算法训练营第36天|1049. 最后一块石头的重量、494. 目标和、474.一和零

目录 1049. 最后一块石头的重量 II1、题目描述2、思路3、code4、复杂度分析 494. 目标和1、题目描述2、思路3、code4、复杂度分析 474. 一和零1、题目描述2、思路3、code4、复杂度分析 1049. 最后一块石头的重量 II 题目链接:link 1、题目描述 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块

算法---------宝石与石头

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

day41| 01背包问题一 01背包问题二(滚动数组篇)416. 分割等和子集 1049.最后一块石头的重量II 494. 目标和 474. 一和零

文章目录 背景介绍01背包问题一思路方法一方法二 01背包问题二(滚动数组篇)思路方法一方法二 416. 分割等和子集思路方法一 1049.最后一块石头的重量II思路方法一 494. 目标和思路方法方法二 回溯法 474. 一和零思路方法 总结 由于笔试的时候会判重,而这里面的代码都是我自己写的,所以以后的博客都要求会员才能看,感谢理解 背景介绍 01背包问题一 01

代码随想录算法训练营第 36 天 |LeetCode1049. 最后一块石头的重量 II LeetCode 494. 目标和 LeetCode 474.一和零

代码随想录算法训练营 Day36 代码随想录算法训练营第 36 天 |LeetCode1049. 最后一块石头的重量 II LeetCode 494. 目标和 LeetCode 474.一和零 目录 代码随想录算法训练营前言LeetCode1049. 最后一块石头的重量 IILeetCode 494. 目标和 LeetCode 474.一和零一、LeetCode1049. 最后一块

【LeetCode每日一题】——1046.最后一块石头的重量

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 优先队列 二【题目难度】 简单 三【题目编号】 1046.最后一块石头的重量 四【题目描述】 有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重

携程编程大赛 (预赛第二场)第一题【剪刀石头布】

Problem Description 现有M个人一起玩剪刀石头布,以1-M编号,每人出一种,出过不再改变,但是我们并不知道它到底是哪一种。 (其中石头赢剪刀,剪刀赢布,布赢石头,一样则平) 裁判用两种说法对这M个人所构成的输赢关系进行描述:  一:"1 A B",表示第A个人和第B个人出的一样。  二:"2 A B",表示第A个人赢第B个人。  裁判对M个人,用以上两种说法,连说

【进阶篇-Day4:使用JAVA编写石头迷阵游戏】

目录 1、绘制界面2、打乱石头方块3、移动业务4、游戏判定胜利5、统计步数6、重新游戏7、完整代码: 1、绘制界面 上述思路是:使用一个二维数组存放图片的编号,然后在后持遍历即可获取对应的图片。 代码如下: package com.itheima.stonepuzzle;import javax.swing.*;public cla

排列宝石问题 回溯

问题描述: 现有n种不同形状的宝石,每种n 颗,共n*n颗。同一种形状的n颗宝石分别具有n种不同的颜色c1,c2,…,cn中的一种 颜色。欲将这n*n颗宝石排列成n行n列的一个方阵,使方阵中每一行和每一列的宝石都有n种不同形状和n种不同颜 色。 试设计一个算法,计算出对于给定的n,有多少种不同的宝石排列方案。   算法设计: 对于给定的n,计算出不同的宝石排列方案数。    输入文件示