日常练习-4

news2024/10/5 15:33:26

目录

一、选择题

二、算法题

1、统计回文

2、连续最大和


一、选择题

1、

解析:

p1是一个字符数组,存储了"abcd",p2是一个字符指针,指向了"ABCD",str是一个字符数组,存储了"xyz"。strcat(p1 + 2, p2 + 1)表示将p1的第三个元素开始的字符串和p2的第二个元素开始的字符串连接起来,也就是将"cd"和"BCD"连接起来,得到"cdBCD"。这个结果会覆盖p1的原来的内容,所以p1变成了"abcdBCD"。strcpy(str + 2, strcat(p1 + 2, p2 + 1))表示将str的第三个元素开始的字符串替换为strcat(p1 + 2, p2 + 1)的结果,也就是将"z"替换为"cdBCD"。这个结果会覆盖str的原来的内容,所以str变成了"xybcdBCD"。

2、

解析:n是一个二维数组,有两行三列,每个元素都是int类型。p是一个指向三个int元素的数组的指针,也就是说,p可以指向n的每一行。p=n表示p指向n的第一行,也就是{10,20,30}。p[0][0]表示p指向的第一行的第一个元素,也就是10。*(p[0]+1)表示p指向的第一行的第二个元素,也就是20。这里,p[0]相当于n[0],也就是n的第一行的地址,加1表示偏移一个int大小,也就是4个字节。(*p)[2]表示p指向的第一行的第三个元素,也就是30。这里,*p相当于n[0],也就是n的第一行的地址,用[]表示下标运算符,也就是取第三个元素。答案为B。

3、

解析:预处理阶段是对源文件进行一些文本替换和宏展开,不涉及语法和语义的检查,所以不会发现函数未定义的错误。编译阶段是将源文件转换为目标文件,也就是机器码的形式,这个阶段会检查语法和一些语义错误,但是不会检查函数是否定义,只要有函数的声明就可以通过编译。链接阶段是将多个目标文件和库文件合并为一个可执行文件,这个阶段会检查函数是否有定义,如果没有定义,就会报错,提示找不到函数的符号。执行阶段是运行可执行文件,这个阶段已经不会发现函数未定义的错误,因为如果有这样的错误,程序就无法生成可执行文件。

二、算法题

1、统计回文

题目解析:本题使用暴力求解方式计算即可,遍历str1,将str2 insert进入str1的每个位置,判断是否是回文,是就++count;需要注意的是这里不能 str1.insert(i, str2),这样的话str1改变了,判断下一个位置就不对了。所以每次使用str1拷贝构造一个str,然后str.insert(i, str2),再判断。

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

bool count( const string& str) {
    size_t begin = 0;
    size_t end = str.size() - 1;
    while (begin < end) {
        if (str[begin] != str[end]) {
            return false;
        } else {
            begin++;
            end--;
        }

    }

    return true;
}

int main() {
    string A, B;
    getline(cin, A);
    getline(cin, B);
    string newstr;
    int num = 0;

    for (int i = 0; i < A.size() + 1; i++) {
        newstr = A;
        newstr.insert(i, B);
        if (count(newstr)) {
            num++;
        }
    }
    cout << num << endl;

}

2、连续最大和

题目解析:本题是一个经典的动规问题,简称dp问题,但是不要害怕,这个问题是非常简单的dp问题。 

状态方程式: max( dp[ i ] ) = getMax( max( dp[ i -1 ] ) + arr[ i ] ,arr[ i ] )

dp[[i]是以i结尾的连续最大和,就相当于我们从开始一直往后加,每次相加之前都要把dp[i-1]+arr[i]和第i个数相比,看看前面i-1个数是否拖了后腿。取大的那个作为dp[i]。

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


int Maxnum(int sum,int a)
{
    return sum>a?sum:a;
}
int main() {
    int n=0;
    cin>>n;
    vector<int> arr;
    arr.resize(n);
    for(int i=0;i<n;i++)
    {
        cin>>arr[i];
    }
    int Sum=arr[0];
    int Max=arr[0];
    for(int i=1;i<n;i++)
    {
        Sum=Maxnum(Sum+arr[i],arr[i]);
        if(Sum>Max)
        {
            Max=Sum;
        }
    }
cout<<Max<<endl; 
    
}

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

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

相关文章

手写一个摸鱼神器:使用python手写一个看小说的脚本,在ide中输出小说内容,同事直呼“还得是你”

文章目录 一、准备python环境二、分析小说网的章节目录三、分析小说网的章节内容四、编写python脚本五、验证一下吧 一、准备python环境 windows从0搭建python3开发环境与开发工具 Python爬虫基础&#xff08;一&#xff09;&#xff1a;urllib库的使用详解 Python爬虫基础&a…

PyTorch深度学习实践1——线性回归和Logistic回归

PyTorch的风格 准备数据集使用类设计模型计算损失函数和优化器训练【前向、反向和更新】 线性回归 import torch# 准备数据集 # x,y是矩阵&#xff0c;3行1列 也就是说总共有3个数据&#xff0c;每个数据只有1个特征 x_data torch.tensor([[1.0], [2.0], [3.0]]) y_data to…

关于Java的类加载机制

1、概述 类会在运行期间第一次使用时&#xff0c;被类加载器动态加载至JVM。JVM不会一次性加载所有类。因为如果一次性加载&#xff0c;会占用很多的内存。 2、类的生命周期 类的生命周期包括以下 7 个阶段&#xff1a; 加载&#xff08;Loading&#xff09;验证&#xff08;…

关于软件的功能复用

有一些人总在说软件要复用&#xff0c;开发一个项目时要想想怎么在另一个项目中能重用。你问他怎么做到复用&#xff0c;就会听到微服务、中台一些名词 复用的层次 说到复用&#xff0c;首先要想明白复用的是啥 级别越低&#xff0c;粒度越小&#xff0c;复用的范围越广&#…

实现div的height从0到auto的过渡效果

通过修改max-height打到高度自适应的过程。 展开状态 收起状态 一般场景描述需求&#xff08;与项目业务无关&#xff09;&#xff1a; 需要完成一种过渡效果,即height是变化的&#xff0c;但不是数字到数字的变化&#xff0c;因为不知道展开之后的高度到底是多少?不确定!!!。…

Qt加载本地图片转为YUV420P格式数据

一、背景介绍 在流媒体应用中&#xff0c;视频编码是必不可少的一环。视频编码的作用是将高带宽、高码率的原始视频流压缩成低带宽、低码率的码流&#xff0c;以便于传输和存储。H264是一种高效的视频编码标准&#xff0c;具有良好的压缩性能和广泛的应用范围&#xff0c;在实…

《C++ primer》练习3.20:输出vector相邻元素的和输出vector头尾对象的和

最近看《C primer》&#xff0c;有这样一个题目 输出vector相邻元素的和 读入一组整数并把它们存入一个vector对象&#xff0c;将每对相邻整数的和输出出来。 这里要注意输入的奇数个和偶数个的数的区别。偶数个整数的话刚好数全部用完&#xff0c;奇数个整数最后一个数空出来…

淘宝平台开放接口API接口

淘宝平台开放接口API接口是指淘宝平台提供给第三方开发者的一组接口&#xff0c;用于实现与淘宝平台的数据交互和功能扩展。通过API接口&#xff0c;第三方开发者可以获取淘宝平台上的商品信息、订单信息、用户信息等数据&#xff0c;也可以实现商品的发布、订单的创建和支付等…

【图解RabbitMQ-7】图解RabbitMQ五种队列模型(简单模型、工作模型、发布订阅模型、路由模型、主题模型)及代码实现

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

2023年世界机器人大会回顾

1、前记&#xff1a; 本次记录是我自己去世界机器人博览会参观的一些感受&#xff0c;所有回顾为个人感兴趣部分的机器人产品分享。整个参观下来最大的感受就是科学技术、特别是机器人技术和人工智能毫无疑问地、广泛的应用在我们日常生活的方方面面&#xff0c;在安全巡检、特…

【洛谷算法题】P5704-字母转换【入门1顺序结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5704-字母转换【入门1顺序结构】&#x1f30f;题目描述&#x1f30f;输入格式&a…

ClickHouse进阶(十三):Clickhouse数据字典-3-文件数据源及Mysql数据源

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…

metinfo __ 6.0.0 __ file-read

metinfo __ 6.0.0 __ file-read 说明内容漏洞编号–漏洞名称MetInfo 6.0.0 任意文件读取漏洞漏洞评级高危影响范围6.0.0.0漏洞描述MetInfo 存在任意文件读取漏洞&#xff0c;攻击者利用该漏洞&#xff0c;在具有权限的情况下&#xff0c;可以读取网站任意文件&#xff0c;包括…

ASP.NET+sqlserver公司项目管理系统

一、源码描述 这是一款简洁十分美观的ASP.NETsqlserver源码&#xff0c;界面十分美观&#xff0c;功能也比较全面&#xff0c;比较适合 作为毕业设计、课程设计、使用&#xff0c;感兴趣的朋友可以下载看看哦 二、功能介绍 该源码功能十分的全面&#xff0c;具体介绍如下&…

centos定期清理磁盘

centos/linux定期清理磁盘 要定时清理空间&#xff0c;我们需要了解一个命令&#xff0c;find 命令&#xff0c;这个命令可以查询目录下特定文件名&#xff0c;生成日期的文件 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.查找需要删除的 find /data_back/zhhyba…

buuctf crypto 【Cipher】解题记录

1.打开题目就有密文 2.一点思路没有&#xff0c;看看大佬的wp&#xff08;BUUCTF Cipher 1_cipher buuctf_玥轩_521的博客-CSDN博客&#xff09;&#xff0c;捏麻麻的原来玄机就在“公平的玩吧”这句话里&#xff0c;playfair也是一种加密方式&#xff0c;密钥猜测也是playfair…

SMB 协议详解之-NTLM身份认证

前面的文章说明了SMB协议交互的过程,在SMB交互的Session Setup Request/Response会对请求者的身份进行验证,这其中涉及到两个主要的协议NTLM以及Kerberos,本文将对NTLM协议进行详细的说明。 什么是NTLM NTLM是 NT LAN Manager (NTLM) Authentication Protocol 的缩写,主要…

MediaCodec源码分析 configure流程

前言 本文梳理MediaCodec configure流程,基于7.0代码,这里只分析AVC和HEVC的视频硬解,流程图如下。 代码见: frameworks/base/media/java/android/media/MediaCodec.java frameworks/base/media/jni/android_media_MediaCodec.h frameworks/base/media/jni/android_media_…

C#,数值计算——指数微分(exponential deviates)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 指数偏差 /// Structure for exponential deviates. /// </summary> public class Expondev : Ran { private double beta { get; set; } /// <s…

windows或者任何系统通过二进制安装最新的Protocol Buffer Compiler

此处使用二进制法安装,适用于任何操作系统 安装预编译的二进制文件&#xff08;任何操作系统&#xff09; 要从预编译的二进制文件安装最新版本的协议编译器&#xff0c;请按照以下说明操作&#xff1a; 1.从 github.com/google/protobuf/releases 手动下载与您的操作系统和计…