【LeeCode做题日记(C/C++)--简单】929题:独特的电子邮件地址

【题目】

【LeeCode做题日记(C/C++)--简单】929题:独特的电子邮件地址_第1张图片

示例:

输入:["test.email+alex@leetcode.com","test.e.mail+bob.cathy@leetcode.com","testemail+david@lee.tcode.com"]
输出:2
解释:实际收到邮件的是 "testemail@leetcode.com" 和 "testemail@lee.tcode.com"。

 

【题目关注点】

string的截取、替换、查找子串函数总结:

1. 截取子串

       s.substr(pos, n)    截取s中从pos开始(包括0)的n个字符的子串,并返回

       s.substr(pos)        截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回

2. 替换子串

       s.replace(pos, n, s1)    用s1替换s中从pos(包括pos)开始(包括0)的n个字符的子串

3. 查找子串

       s.find(s1)         查找s中第一次出现s1的位置,并返回(包括0)

       s.rfind(s1)        查找s中最后次出现s1的位置,并返回(包括0)

       s.find_first_of(s1)       查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)

       s.find_last_of(s1)       查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)

       s.fin_first_not_of(s1)         查找s中第一个不属于s1中的字符的位置,并返回(包括0)

       s.fin_last_not_of(s1)         查找s中最后一个不属于s1中的字符的位置,并返回(包括0)

 

【解答】

class Solution {
public:
    int numUniqueEmails(vector& emails) {
        for(int i=0;i0){
                //注意这里不能写add_index!=0,因为当没有“+”时,find()函数返回-1
                //此时会报out_of_range的错
                emails[i].replace(add_index,a_index-add_index,"");
            }
        }
        int flag = 0;
        int number = 1;
        for(int i=0;i

 

你可能感兴趣的:(LeeCode做题日记)