前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode - 宝石与石头&转换成小写字母

LeetCode - 宝石与石头&转换成小写字母

作者头像
晓痴
发布2019-08-22 16:52:05
4500
发布2019-08-22 16:52:05
举报
文章被收录于专栏:曌的晓痴曌的晓痴曌的晓痴

LeetCode第771题,难度简单;LeetCode第709题,难度简单...这两题实在是很简单,所以我就只能把两题放在一起了。

原题地址:https://leetcode-cn.com/problems/jewels-and-stones/ 与 https://leetcode-cn.com/problems/to-lower-case/

题目描述

宝石与石头:

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

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

转换成小写字母:

实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。

解题思路:

先说宝石与石头的思路:

  1. 首先将所有的宝石都拿出来放到HashSet里面,到时候可以快速判断,此时的时间复杂度为O(N)
  2. 然后遍历石头字符串S,判断每个石头(字符)是否在宝石的Set中。所有这个解法的时间复杂度为O(N)级别的.... 但是我下面是用了O(N^2)的方式的,所以跑起来特别的慢。

再说转换成小写字母的思路:

  1. 转换成字符数组,遍历数组
  2. 如果是大写字母,那就调整它的ASCII码;小写字母就跳过。

但是我下面是用的API的,所以代码就一行。

中文官网题解:

https://leetcode-cn.com/problems/jewels-and-stones/solution/

https://leetcode-cn.com/problems/to-lower-case/solution/

个人题解:

// 宝石与石头
class Solution {
    public int numJewelsInStones(String J, String S) {
        int num = 0;
        if (J.length() == 0 || S.length() == 0) {
            return num;
        }
        for (char c : S.toCharArray()) {
            if (J.indexOf(c) != -1) {
                num++;
            }
        }
        return num;
    }
}
// 转换成小写字母
class Solution {
    public String toLowerCase(String str) {
        return str.toLowerCase();
    }
}

结果:

贴上两道题目的结果。很明显,偷懒不思考的结果就是两题的结果很惨不忍睹。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 曌的晓痴 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档