771.宝石与石头+1108.IP地址无效化

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 中的字符不重复。

思路:
用两个for循环,遍历每块石头,检查是不是宝石。(记得要给count初始值)
代码:(C++)

class Solution {
public:
    int numJewelsInStones(string J, string S) {
        int i,j;
        int count=0;
        for(i=0;i

提交结果

提交结果.png

1180.IP地址无效化

题目描述
给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。
所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。
示例 1:
输入:address = "1.1.1.1"
输出:"1[.]1[.]1[.]1"
示例 2:
输入:address = "255.100.50.0"
输出:"255[.]100[.]50[.]0"
提示:
给出的 address 是一个有效的 IPv4 地址

思路:
逆序遍历字符串并将.替换为[.],不能正序遍历,因为每次替换完,下一个字符即为 . ,会进入死循环。逆序遍历,因为替换的东西插在i的后面,所以再向前遍历时不会遇到新插入的 . 。
String.replace(i,j,a)代表从第i个位置,将它及以后的 j 个位置替换为字符串a。
代码:(C++)

class Solution {
public:
    string defangIPaddr(string address) {
        int i;
        for(i=address.size();i>=0;i--)
        {
            if(address[i]=='.')
                address.replace(i,1,"[.]");
        }
        return address;
    }
};

提交结果:

提交结果.png

你可能感兴趣的:(771.宝石与石头+1108.IP地址无效化)