笔训【day3】

目录

选择题

1、二维数组初始化

2、[]优先级高于*

​编辑 3、for初始化只执行一次​编辑

4、大小端

编程题

 1、字符串中找出最长连续数字串

 2、数组中出现次数超过一半的数


选择题

1、二维数组初始化

笔训【day3】_第1张图片

C:多初始化了一行

D:不能中间用两个逗号跳过。

2、[]优先级高于*

笔训【day3】_第2张图片 3、for初始化只执行一次笔训【day3】_第3张图片

4、大小端

32位小端机器,运行结果是()

笔训【day3】_第4张图片 

编程题

 1、字符串中找出最长连续数字串

笔训【day3】_第5张图片 

#include 
using namespace std;

int main() {
    string str,cur,ret;
    cin >> str;
    for(int i = 0;i <= str.size();i++){
        if(str[i]<='9' && str[i]>='0')
        {
            cur += str[i];
        }
        else
        {
            if(cur.size() > ret.size())
            {
                ret = cur;
            }
            else 
            {
                cur.clear();
            }
        }
    }
    cout << ret <

 2、数组中出现次数超过一半的数

笔训【day3】_第6张图片

 

#include 
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型vector 
     * @return int整型
     */
    int MoreThanHalfNum_Solution(vector& numbers) {
        // write code here
        if(numbers.empty()) return 0;
        int result = numbers[0];
        int times = 1;

        for(int i = 1;i < numbers.size();i++)
        {
            if(times != 0)
            {
                if(numbers[i] == result)
                    times++;
                else times--;
            }
            else 
            {
                result = numbers[i];
                times = 1;
            }
        } 
        times = 0;
        for(int i = 0;i < numbers.size();i++){
            if(numbers[i] == result) times++;
        }
        return times > numbers.size()/2 ? result: 0;
    }
};

你可能感兴趣的:(笔训,算法,c++,数据结构)