多语言展示
当前在线:1108今日阅读:82今日分享:48

力扣算法练习——宝石与石头

给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此'a'和'A'是不同类型的石头。
方法/步骤
1

示例1如图示。

2

示例2如图示。

3

注意事项如图示。

4

解题思路:通过阅读题意后知道:字符串J中的字母不重复,这是一个很重要的信息。

5

在知道字符串J中第字符没有重复后,我们就可以遍历J中的每个字符。

6

统计J中所有字符在S字符串中出现的次数。

7

将J中每个字符的统计结果进行累加即为所求结果。

8

终上所述源代码如图示:

10

问题已经被解决,但是还可以考虑是否可以优化程序。

11

由于代码的主要的结构是循环语句,故可以考虑用列表推导使其更加简介,同时还有可能提高程序的运行的速度。

12

优化后的代码只有一行。如图示:

13

提交优化后的代码如图示:

14

对比发现程序的运行效率还没有之前的代码运行效率高。

15

我个人以为主要是原代码与C语言更接近,从而导致加快了程序的运行效率。当然这只是为个人的猜测。

推荐信息