lc刷题+知识点

211 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情


查询这些接口的网址:点击蓝色字体即可进入请点击


  • begin

返回字符串第一个字符的迭代器

  • end

返回一个迭代器,该迭代器为字符串最后一个字符的后一个。 通常用beginend形成一个区间来遍历一个字符串。

	string s("ml is cool");
	for (std::string::iterator it = s.begin(); it != s.end(); ++it)
		cout << *it;
	cout << endl;

在这里插入图片描述

  • size

返回字符串的长度。 在这里插入图片描述

	string s("ml is cool");
	cout << s.size() << endl;

输出的结果为10

  • insert

在这里插入图片描述 该接口为插入一段字符。14,都是从pos位置开始插入一个字符或者字符串。 57,对于迭代器iterator的参数,需要传迭代器参数。

  • operator+

在这里插入图片描述 实现两个字符串的拼接。把后一个字符串连接到前一个字符串上。

	string s1("ml ");
	string s2("is cool");
	string s3;
	s3 = s1 + s2;
	cout << s3 << endl;

在这里插入图片描述

把字符串转换成整数

思路

下面只讲述一下我的思路,首先遍历一下字符串,看看是否符合转换成整数的字符串。当不是的时候直接返回0。 我是从后往前搞的——从后往前遍历,每个数乘以它的位权然后累加求和,当到第一个字符的时候也要判断一下是正是负还是个数。 当然它的测试用例也不够全,没有中间有 0的测试用例。如:234023

代码

class Solution {
public:
    int StrToInt(string str) {
        int a=0;
        int ret=0;
        for(auto ch:str)
        {
            if(a==0&&(ch=='+'||ch=='-'))
            {
                a=1;
                continue;
            }
            else if(ch<='0'||ch>='9')
            return 0;
        }
        for (int i = str.size() - 1; i >= 0; i--)
		{
			if (i == 0)
			{
				if (str[i] == '+')
					break;
				else if (str[i] == '-')
				{
					ret = -ret;
					break;
				}
			}
			ret += (str[i] - '0') * (int)(pow(10 , (str.size() - 1 - i)));
		}
        return ret;
    }
};

415.字符串相加

思路

相应位置的数进行相加 我们从最后一位开始相加,把相加的结果进行尾插,同时要注意进位的问题,进位只可能是1。同时也要注意其中一个字符串遍历完的时候。最后再把加好的字符串进行逆置一下即可。

代码

class Solution {
public:
    string addStrings(string num1, string num2) {
        string ret;
        int n1=num1.size()-1,n2=num2.size()-1;
        int c=0;//表示进位
        while(n1>=0||n2>=0){
            int a=n1>=0?num1[n1]-'0':0;
            int b=n2>=0?num2[n2]-'0':0;
            int x=a+b+c;
            if(x>9)
            c=1;
            else
            c=0;
            ret+=(x%10+'0');
            --n1;--n2;
        }
        if(c==1)
        ret+='1';
        reverse(ret.begin(),ret.end());//逆置
        return ret;
    }
};