笔试强训day06(不要二、字符串转整数)

目录

第一题-不要二

第二题-字符串转整数


第一题-不要二

思路:

         根据题目给的公式(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) = 4,不能等于2,说明不能在符合这个公式里面的位置放蛋糕。

        首先所有下标都是整数可能的组合有0+4,1+3,2+2,其中2+2,1+3都不符合,因为没有根号,其次都是正数,所以只有0+4符合标准,说明两种情况。

        x1 = x2,y1 = y2+2;或者y1 = y2, x1 = x2+2;换算成下标的话,如果在[i][j]位置放蛋糕的话,那么[i][j+2]和[i+2][j]位置都不能够放蛋糕。


#include<iostream>
#include<vector>
using namespace std;
int main ()
{
    int w, h, count = 0;
    cin>>w>>h;
    vector<vector<int>> vv;
    vv.resize(w);
    //首先初始化行列都为1,即假设每个位置都有蛋糕
    for(auto& e : vv)
    {
        e.resize(h, 1);
    }
    for(int i = 0; i < w; ++i)
    {
        for(int j = 0; j < h; ++j)
        {
            //每次将[i][j]位置的蛋糕记录时,就将[i][j+2]和[i+2][j]位置蛋糕置0
            if(vv[i][j] == 1)
            {
                count++;
                if(i+2<w)
                 vv[i+2][j] = 0;
                if(j+2<h)
                 vv[i][j+2] = 0;
            }

        }
    }
    cout<<count<<endl;
}

第二题-字符串转整数

 

思路

        首先判断第一个字符是否是+-,如果是,则将第一个字符都转化成'0’,便于后续遍历

        记录第一个正负的同时,开始遍历字符串,然后将每一个字符串依次转化成数字即可,最后返回数字课符号

class Solution {
public:
    int StrToInt(string str) {
        if(str.empty()||(str[0] == '0' &&str.size() == 1)) return 0;
        int flag = 0;
        int sum = 0;
        //确定符号
        if(str[0] == '+')
        {
            flag = 1;
            //方便后续遍历数组
            str[0] = '0';
        }
        if(str[0] == '-')
        {
            flag = -1;
            str[0] = '0';
        }
        for(int i = 0; i < str.size(); ++i)
        {
            if(str[i] < '0' || str[i] > '9')
            {
                sum = 0;
                break;
            }
            sum = sum*10 + str[i]-'0';
        }
        return (sum*flag);
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

penguin_bark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值