leetcode刷题记录——771. Jewels and Stones

题目解析:输入参数为两个字符串,求第二个字符串中有几个字符包含于第一个字符串。

解法一:contains()方法

class Solution {
    public int numJewelsInStones(String J, String S) {
        int num = 0;
        int length = S.length();
        for(int i = 0;i < length;i++) {
            char c = S.charAt(i);
            if(J.contains(c + "")) {
                num++;
                continue;
            }
        }
        return num;
    }
}

解法二:indexOf()方法

class Solution {
    public int numJewelsInStones(String J, String S) {
        int num = 0;
        int length = S.length();
        for(int i = 0;i < length;i++) {
            char c = S.charAt(i);
            if(J.indexOf(c + "") != -1) {
                num++;
                continue;
            }
        }
        return num;
    }
}

两种方法的原理一模一样,遍历一遍目标字符串的字符,如果字符包含于比较字符串,则结果加一。

方法总结

String.contains(String) 如果包含则返回true,否则返回false

String.indexOf(String)如果包含则返回对象内所查找字符串的开始位置,否则返回-1

猜你喜欢

转载自blog.csdn.net/qq_37684824/article/details/82860715