Day5 统计回文、连续最大和

news2024/11/29 13:37:59

✨个人主页: 北 海
🎉所属专栏: C/C++相关题解
🎃操作环境: Visual Studio 2019 版本 16.11.17

成就一亿技术人


文章目录

  • 选择题
    • 1.C指针/链表/结构
  • 编程题
    • 1.统计回文
    • 2.连续最大和


选择题

1.C指针/链表/结构

题目:下面两个结构体在 #pragma pack(4)#pragma pack(8) 的情况下,结构体的大小分别是()

struct One
{
	double d;
	char c;
	int i;
};

struct Two
{
	char c;
	double d;
	int i;
};

选项:

  • A. 16 24 16 24
  • B. 16 20 16 20
  • C. 16 16 16 24
  • D. 16 16 24 24

题目分析:考的是 结构体内存对齐 相关知识,首先 #pragma pack(4) 表示默认对齐数为 4Windows 中默认为 8),其次 struct One 中成员占用空间分别为 814,因为当前对齐数为 4,所以实际占用空间为 0 1 2 3 4 5 6 7812 13 14 15 最终占用 16 字节;同理 struct Two 中各成员实际占用空间为 04 5 6 7 8 9 10 1112 13 14 15 最终占用 16 字节。当默认对齐数修改为 8 时,struct Two 会占用更大的空间

内存对齐相关文章:《C语言进阶——自定义类型》

图解

图解

图解

注意: 当所有数据都存储完成后,还有确保当前 整个结构 所占空间为最大对齐数的整数倍,如果不足,则继续向后对齐

所以当默认对齐数为 4 时,struct One 大小为 16 字节,struct Two 大小也为 16 字节;而当默认对齐数为 8 时,struct One 大小为 16 字节,struct Two 大小为 24 字节

结果:C

结果
结果


编程题

1.统计回文

题目链接:WY18 统计回文

题目

题目分析:字符串相关的题目,给定字符串 A 跟字符串 B,统计将 B 插至 A 的任意位置,将产生多少个回文串,可以暴力求解,即将 B 分别插入 A 的每一个位置,然后判断组合字符串是否为回文;判断回文时,可以使用双指针法,即首尾移动判断

#include <iostream>
#include <string>

using namespace std;

bool isPali(const string& str)
{
    int left = 0;
    int right = str.size() - 1;
    while (left < right)
    {
        if (str[left] != str[right])
            return false;
        left++;
        right--;
    }

    return true;
}

int main()
{
    string A, B;
    while (cin >> A >> B)
    {
        int cnt = 0;

        //B 插入 A 的 i 处
        for (size_t i = 0; i <= A.size(); i++)
        {
            string tmp(A);  //临时字符串
            tmp.insert(i, B);

            if (isPali(tmp))
                cnt++;
        }

        cout << cnt << endl;
    }
}

注意:

  • B 可以插入 A 的末尾,所以注意不要遗漏这种情况
  • 双指针在进行判断时,不要写成 left != right,因为两者可能会错过,导致死循环

结果

2.连续最大和

题目链接:DD1 连续最大和

题目

题目解析:这是一道来自滴滴的笔试题,考点为简单动态规划,可以直接分析都得结论:数组 v 中的值不断 val 累加,如果比当前值自身还要大,就统计,否则就用自己的值,每次判断相加后,都需要更新 max

#include <iostream>
#include <vector>
using namespace std;

int main()
{
   int n = 0;
   cin >> n;
   vector<int> v(n);
   for (int i = 0; i < n; i++)
       cin >> v[i];

   int val = 0;    //起始默认值为0
   int max = v[0];	//默认为数组中首个值
   for (auto& e : v)
   {
   	   //如果两者相加比当前值还大,那么更新当前位置值
       if (e + val > e)
           e = e + val;
       val = e;	//从当前位置,进行下一次相加判断

       if (val > max) max = val;
   }

   cout << max << endl;

   return 0;
}

图解

注意: 最大值默认设为 v[0],避免因值过小而出错

结果


星辰大海

相关文章推荐

Day4 计算糖果、进制转换

Day3 字符串中找出连续最长的数字串、数组中出现次数超过一半的数字

Day2 排序子序列、倒置字符串

Day1 组队竞赛、删除公共字符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 性能调优及生产实战篇终版

前言为什么会查询慢&#xff1f;优化数据访问查询数据低效原因是否请求了不需要的数据 优化执行过程查询缓存查询优化处理语法解析器查询优化器优化器的优化策略优化器的优化类型关联查询排序优化 大数据量查询优化优化 COUNT 查询优化关联查询优化子查询优化 LIMIT 分页优化 u…

Laetus控制器维修20C-A323包装机控制模块

LAETUS 旗下系列有&#xff1a; ARGUS 、 POLYPHEM 、 INSPECT 等均可维修。Laetus GmbH控制器维修28C-A353&#xff0c;设备控制模块维修。 Laetus GmbH部分产品维修型号&#xff1a; Laetus 2D COSI wt &#xff1b; Laetus 2D COSI wt Laetus TDK Lambda HK15 Laetus 2D-…

别再瞎考证了!关于网络安全行业的证书,看完这篇,明明白白考证

有相关证书会让你的职业生涯锦上添花&#xff0c;实战技术能力必不可少。 温馨提示&#xff1a; 1、不满足条件的高校学生群体&#xff0c;可以直接报名考取NISP二级证书&#xff0c;满足CISP认证要求后&#xff0c;免考试按规定更换CISP证书&#xff0c;为毕业后从事网络安全…

一切从“简”,解放IT运维人员

运维人的神技 运维既是个技术活儿也是个苦差事&#xff0c;而运维人员被期望有着无限的技能&#xff1a;主机、存储、网络、操作系统样样精通&#xff0c;而且还要会写SQL、shell、开发语言java、.net、python等等&#xff0c;对业务更是门清&#xff0c;对各个用户的脾气喜好也…

vector常见接口的使用(基于c++标准库中的STL)

前言 vector是STL中的重要容器&#xff0c;在平时使用中较常见。学会使用它以及了解它的核心原理对于我们学习它是很有帮助的。vector是可以动态增长的数组。vector可以像数组一样进行随机访问&#xff0c;这是vector最大的优势之一&#xff0c;因为支持随机访问就间接的支持了…

TRUNCATE TABLE t 和DELETE FROM t的区别

背景 最近再工作中,遇到一个问题,就是再代码执行过程中,出现异常时并不会去回滚代码.导致数据不一致,最初以为是Transactional这个注解没有生效 Spring中什么时候Transactional会失效 因为Spring事务是基于代理来实现的,所以某个加了Transactional的方法只有是被代理对象调用…

APP测试面试题快问快答(二)

1.请问App测试的主要内容包含&#xff1f; 功能测试&#xff1a; 业务逻辑正确性测试&#xff1a;依据产品文档->测试用例编写。 界面的测试 界面测试&#xff1a;依据产品UI设计文档&#xff08;高保真图&#xff0c;原型图&#xff09;。 升级&#xff0c;安装&#…

研发工程师玩转Kubernetes——定时任务

定时任务是指可以制定周期的任务&#xff0c;比如每周二0点1分执行一次。在《研发工程师玩转Kubernetes——非定时任务》中&#xff0c;我们介绍了单次执行的任务。现在我们只要对其清单稍作修改&#xff0c;就可以实现定时任务。 # wrk_cronjob.yaml apiVersion: batch/v1 ki…

【论文阅读】SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising

【论文阅读】SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising 文章目录 【论文阅读】SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising1. 来源2. 介绍3. 模型3.0 问题定义3.1 采样公式3.2 带指针的 Transformer3.3 模式感知去噪&am…

低代码平台或零代码平台靠谱吗?15 年的老程序员来给大家剖析一下

提到低代码平台或者零代码平台靠谱吗&#xff1f;咱们首先得先认识一下低代码和零代码平台。 一、什么是低代码开发平台呢&#xff1f; 低代码的含义是少写代码并不是不写代码&#xff0c;面向的用户群体还是编程人员&#xff0c;传统的快速开发平台、在线开发平台、OA办公系统…

Python中Pandas库中的DataFrame数据结构创建举例

Python中Pandas库的DataFrame数据结构创建举例 DataFrame的数据结构是Python数据分析中重要应用数据类型。本文将重点介绍DataFrame的创建。 1.DataFrame的创建 创建DataFrame的方法使用pandas.DataFrame&#xff0c;向该方法传入字典即可创建DataFrame。 传入的字典的key对应E…

【HAL库】STM32F407----CAN通信----过滤器配置

【HAL库】STM32F407----CAN通信----基本原理 【HAL库】STM32F407----CAN通信----电路图 【HAL库】STM32F407----CAN通信----中断详解 【HAL库】STM32CubeMX开发----STM32F407----CAN通信实验 一、STM32F407----CAN过滤器----简介 在CAN协议里&#xff0c;报文的标识符不代表节…

纯vue 获取usb串口,实现电子秤的对接

说明&#xff1a;解决生产上过秤重量手动输入出错问题 效果图&#xff1a; 一&#xff1a;代码部分 1、创建一个名字为seriaport.js文件&#xff08;随便定义&#xff0c;为下面页面引入使用&#xff09; export default class MySerialPort {constructor() {this.state {po…

超级干货!前端入门先学什么?前端自学路线分享!

各位同学&#xff0c;下午好~之前给大家分享了前端岗位的面试题&#xff0c;小源能看的出来&#xff0c;还是有不少同学想入行前端的&#xff01;那除了会面试&#xff0c;还要有充足丰富的知识储备&#xff0c;这样才能拿下工作&#xff01; 好程序员今天就给大家整理了一份前…

C++进阶 —— set

目录 一&#xff0c;set介绍 二&#xff0c;set使用 一&#xff0c;set介绍 set是按照特定次序存储元素的关联式容器&#xff0c;元素不可重复&#xff1b;set中的元素不能在容器中修改(元素总是const)&#xff0c;但是可从容器中插入和删除它们&#xff1b;set中的元素总是按…

【Linux】进程间通信详解

环境&#xff1a;centos7.6&#xff0c;腾讯云服务器Linux文章都放在了专栏&#xff1a;【Linux】欢迎支持订阅 进程间通信介绍 什么是进程间通信&#xff1f; 进程间通信&#xff08;Interprocess communication&#xff0c;简称IPC&#xff09;就是让程序员能够协调不同的进…

【Apache 网页优化】

文章目录 一、Apahce 网页优化1、网页压缩2、网页缓存 二、Apachen的安全优化1、隐藏版本信息2、Apache 防盗链 一、Apahce 网页优化 1、网页压缩 1.检查是否安装 mod_deflate 模块 apachectl -t -D DUMP_MODULES | grep "deflate"2.如果没有安装mod_deflate 模块…

Java基础 流程控制语句

顺序结构 顺序结构就是程序从上到下逐行地执行。表达式语句都是顺序执行的。并且上一 行对某个变量的修改对下一行会产生影响。 public class StatementTest{public static void main(String[] args){int x 1;int y 2; System.out.println("x " x);System.out.p…

非科班自学一年心得,学弟学妹别瞎学了

大家好&#xff0c;我是帅地。 前两天我发了一篇亲学弟自学一年拿大厂 offer 的文章&#xff1a;非科班&#xff0c;帅地亲学弟自学一年拿到大厂offer了 不过那一篇只写了自己转行开发岗的心里变化&#xff0c; 这两天学弟又在知识星球发了一篇关于找工作的万字长文 说实话&…

ISO21434 项目网络安全管理

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 网络安全责任 4.2 网络安全规划 4.3 裁剪 4.4 重用 4.5 非上下文组件 4.6 现成组件 4.7 网络安全案例&#xff08;Cybersecurity case&#xff09; 4.8 网络安全评估&#…