【机试】子串计算 (STL)

202112C语言三级真题(子串计算) 子串计算 给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。 时间限制:1000 内存限制:65536 输入 一行,一个01字符串。 输出 对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序从小到大依次输出,每行一个。 样例输入 10101 样例输出 0 2 01 2 1 3 10 2 101 2 思路: 利用双重循环,找到所有的子集,然后统计遍历,如果出现次数大于1的,就输出 #include<iostream> #i 阅读详情

子串计算

来源:北京大学

题目描述

给出一个01字符串(长度不超过100),求其每一个子串出现的次数。

输入描述

输入包含多行,每行一个字符串。

输出描述

对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。

示例

输入

10101

输出

0 2
01 2
1 3
10 2
101 2

 AC代码

#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int main(void)
{
	string s;
	while(cin>>s)
	{
		map<string,int> m;
		for(int i=0;i<s.size();i++){
			for(int j=1;j<=s.size()-i;j++){
				m[s.substr(i,j)]++;
			}
		}
		map<string,int>::iterator it;
		for(it = m.begin();it!=m.end();it++){
			if(it->second>1)
				cout<<it->first<<" "<<it->second<<endl;
		}
	}
	return 0;
}

注意点:1.map的妙用。2.substr()的两个参数,第一个是起始位置,第二个是子串长度,其中第一个字符是位置0。

还可以构造结构体来存储子串。每一次提取一个子串出来后,先生成子串,然后和已有子串比较,如果有计数加1,否则创建子串后计数加1。不采用STL因此很考验基本功呀!

//https://www.nowcoder.com/questionTerminal/b44f5be34a9143aa84c478d79401e22a
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define N 5050
#define LEN 101
using namespace std;
 
struct STR{
    char s[LEN];
    unsigned count;
}buf[N];//子串集合
int n;//子串的数量
char str[LEN];//读取的字符串
char child[LEN];//临时存储子串
 
void MakeChild(int from, int len)
{//读取字符串中的子串,存入child字符串。子串从from开始,长度为len
    for(int i=0; i<len; i++)
    {
        child[i]=str[from+i];
    }
    child[len]='\0';
}
 
bool cmp(STR a, STR b)
{
    return strcmp(a.s, b.s)<0;
}
 
void LetsGo()//生成子串列表并完成统计
{
    int len=strlen(str);
    for(int i=1; i<len; i++)//i是子串长度
    {
        for(int from=0; from+i<=len; from++)
        {
            MakeChild(from, i);//生成子串
            bool repeat=false;//用来检查这个字串以前是否出现过。先假设没出现过
            for(int i=0; i<n; i++)
            {
                if(strcmp(buf[i].s, child)==0)
                {//如果这个字串以前就出现过,那就直接计数器+1
                    buf[i].count++;
                    repeat=true;
                    break;
                }
            }
            if(!repeat)
            {//这个字串之前没出现过,那就把这个字串加入字串列表,计数器为1
                buf[n].count=1;
                strcpy(buf[n++].s, child);
            }
        }
    }
}
 
int main()
{
    while(gets(str))
    {
        n=0;//子串列表清零
        LetsGo();//生成子串列表并完成统计
        sort(buf, buf+n, cmp);//给子串列表排序
        for(int i=0; i<n; i++)
        {
            if(buf[i].count>1)//如果出现过不止一次,那就输出
            {
                printf("%s %d\n", buf[i].s, buf[i].count);
            }
        }
    }
    return 0;
}

 

与指定数字相同的数的个数 01:与指定数字相同的数的个数 描述: 输出一个整数序列中与指定数字相同的数的个数。 输入: 输入包含三行: 第一行为N,表示整数序列的长度(N <= 100); 第二行为N个整数,整数之间以一个空格分开; 第三行包含一个整数,为指定的整数m。 输出: 输出为N个数中与m相同的数的个数。 样例输入: 3 2 3 2 2 样例输出: 2 /*源代码*/ #include<iostream> int main() { int n,m,a[100]; int s 阅读详情

相关推荐

华为机试C++108题全解:核心算法与实战技巧精讲

算法是计算机科学的核心基础,它通过定义明确的计算步骤来解决特定问题,其效率由时间复杂度和空间复杂度衡量。掌握核心算法与数据结构,如动态规划、哈希表和二叉树遍历,能显著提升解决复杂工程问题的能力,在性能优化和系统设计中具有极高价值。这些技术广泛应用于搜索引擎、推荐系统、自动驾驶等场景。本文聚焦于华为机试这一高频技术考核场景,系统梳理了字符串处理、动态规划、二叉树等核心考点,并提供了C++ STL的实战应用技巧与详细的解题框架,旨在帮助开发者高效备考,建立扎实的算法思维。

weixin_29290863的博客 291

1193:吃糖果

1193:吃糖果 【题目描述】 名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,0<N<20)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,...

hipoole的博客 548

C++ STL与核心算法精解:华为机试108题实战指南

在算法与数据结构的学习中,掌握高效的工具和核心思想是提升编程能力的关键。C++标准模板库(STL)提供了一套经过高度优化的通用容器和算法,如vector、unordered_map、priority_queue等,能够显著提升开发效率与代码性能。其设计遵循泛型编程思想,通过模板实现类型安全与代码复用,是现代C++工程实践的基石。理解STL各组件的底层原理与适用场景,例如哈希表实现快速查找、堆结构处理优先级问题,对于解决实际编程问题具有重要价值。这些技术广泛应用于系统开发、游戏引擎、高频交易等对性能要求苛刻的

weixin_33895695的博客 389

九度题目1149:子串计算

题目描述: 给出一个01字符串(长度不超过100),求其每一个子串出现的次数。 输入: 输入包含多行,每行一个字符串。 输出: 对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。 样例输入: 10101 样例输出: 0 2 01 2 1 3 10 2 101 2 [ map

wxyfennie的博客 1756

opencode完整使用指南:从安装配置到Agent式编程实战

AI编程工具正从辅助补全向智能体协作演进。编程智能体不仅理解项目全局,还能自主执行原子级重构、测试验证等工程任务,显著提升研发效能。以opencode为代表的开源终端AI编程工具,凭本地优先和灵活模型接入成为技术团队新宠。本文围绕opencode的完整使用链路展开,从Node.js环境准备、npm全局安装,到解决Windows环境变量配置问题,再到接入OpenAI、Anthropic或多模型管理平台,梳理一套标准化接入方案。同时演示VSCode插件调用、LSP语义分析及Playwright驱动的浏览器自动化

weixin_28837817的博客 319

使用电荷放大器处理压电加速度计输出

电阻器 R p模拟传感器的绝缘电阻,为产生的电荷创建泄漏路径。在此图中,顶部波形显示传感器产生的电荷,而底部波形显示电荷放大器的输出。这需要具有大输入阻抗的放大级,以防止产生的电荷通过与传感元件并联的放大器的输入阻抗泄漏。换句话说,电荷放大器补偿传感器产生的电荷 q p ,反馈电容器 C F中具有相反极性的等量电荷。因此,任何与传感器并联的绝缘电阻,如电缆的绝缘电阻或传感器的漏电电阻Rp,都不能流过电流。漂移是指电荷放大器输出在一段时间内发生的变化,而不是由被测物理参数的变化(我们讨论的加速度)引起的。

weixin_45260069的博客 3900

牛客网 子串计算

题目描述 给出一个01字符串(长度不超过100),求其每一个子串出现的次数。 输入描述: 输入包含多行,每行一个字符串。 输出描述: 对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。 示例1 输入 10101 输出 0 2 01 2 1 3 10 2 101 2 经验总结 这道题用了图和串,好用的使用方法有while(getline(cin,s)、mp3[...

weixin_44348004的博客 775

实战分享:如何利用svchost进程绕过360防护(附完整Shellcode注入教程)

本文深入解析系统进程安全防护机制,探讨svchost等关键进程的安全特性与防护策略。详细分析安全软件的行为检测和内存保护技术,提供系统加固与监控实践建议,助力企业构建多层次防御体系,有效应对潜在安全威胁。

weixin_30752699的博客 99

2025年贵州大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年贵州大学计算机考研复试机试真题2025年贵州大学计算机考研复试上机真题历年贵州大学计算机考研复试上机真题历年贵州大学计算机考研复试机试真题N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。

928

HandwrittenMathFormulaRecognition:基于YOLOv8的手写数学公式识别系统

输入:包含手写数学公式的图像(拍摄的板书、作业纸等)输出:对应的数字文本形式的数学公式(如LaTeX格式或文本表达式)标准的手写数学表达式数据集,包含在线轨迹及图片,广泛用于公式识别研究。包含近10万对公式图片及对应的LaTeX标注,适合训练公式识别模型。MathBrush公开手写数学公式图像数据集,含多种书写风格。手写数字与符号数据集(MNIST及其扩展)用于基础数学符号的训练。

YOLO 283

嵌入式工程师成长之路(7)——算法学习

算法大全1、风仲达——算法笔记2、坐在马桶上学算法3、啊哈算法4、深度强化学习实验室。

云轩阁 4万+

【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

爆肝3个月为大家带来华为机试108题全解,强烈推荐学生党、就业党收藏

翟天保的博客 8万+

基于STM32、HAL库的IP5356M_DBZ_CA快充协议芯片简介及驱动程序设计

IP5356M_BATTERY_LEVEL_25 = 1, /* 电池电量25% */IP5356M_CHARGE_STATE_CHARGE_DONE = 4, /* 充电完成 */IP5356M_CHARGE_STATE_FAST = 2, /* 快速充电 */IP5356M_CHARGE_STATE_NONE = 0, /* 无充电 */IP5356M_CHARGE_STATE_PRE = 1, /* 预充电 *//* 延时1秒 */

corlin6688的博客 1417

C++常见的STL用法(机试向)

作为计算机相关专业的学生,无论是就业、考研复试、保研,机试都是一个很常见且重要的考核。其中一般OJ平台上C++、java是最常见的两种主流使用语言,考虑到性能运行速度的问题,我是主要使用C++作为主语言,下面结合自己平时刷acwing、PTA、蓝桥、力扣等平台程序设计算法题的一些经验,对C++中常见的STL 用法做一个大致的总结。本人小白,如果有问题欢迎大佬们批评指正!

qq_45858191的博客 1758

Flutter应用安卓逆向之hook分析研究---附dart版本对照表(必看篇)

搜索md5、rsa、aes等关键字分析要破解的加密算法,使用frida进行hook可疑函数的偏移地址。,双击进去找到ssl_crypto_x509_session_verify_cert_chain函数的偏移地址进行hook掉;Flutter应用是内置进行ssl证书校验的,无法通过常规方法抓到包,需要通过frida把它内置的ssl校验hook掉。重构完成后会生成新的apk,把它安装到模拟器或者真机中并打开运行,此时系统会在。关键字的函数进行hook(因为其返回的是字符串类型)中,拖进ide搜索字符串。

云霄IT的博客 8440

Windows 11 - 打开操作安全中心提示 “需要使用新应用以打开此 Windowsdefender 链接“ 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开)

Windows 11 - 打开操作安全中心提示 "需要使用新应用以打开此 Windowsdefender 链接" 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开),当您点击任务栏上要关闭安全中心防护设置时,这种情况打不开怎么解决,怎么办,Windows安全中心,病毒和威胁保护,账户保护,防火墙和网络保护,设备安全性。

🏆 前端领域优质创作者 1万+

计算机考研机式刷题系列之子串计算

题目来源 牛客网 子串计算 题目描述: 给出一个01字符串(长度不超过100),求其每一个子串出现的次数。 输入: 输入包含多行,每行一个字符串。 输出: 对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。 输入示例: 10101 输出结果 0 2 01 2 1 3 10 2 101 2 这个题目可以采用c++ stl中的map容器 首先输入是一个string...

Eugene__Li的博客 1193

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2472:子串计算 ②(STL处理)

描述给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。输入一行,一个01字符串。输出对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序从小到大依次输出,每行一个。用STL处理,效果不错#include &lt;bits/stdc++.h&gt; using namespace std; string sub[5010]; map&...

未来有个世界等着你 1763

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为OD机试经典题解析:坐标移动的C++实现与鲁棒性设计

字符串解析是编程中的基础且高频任务,其核心在于将非结构化的文本数据转换为程序可处理的逻辑指令。其原理通常涉及字符串分割、模式匹配和类型转换。掌握高效的字符串解析技术,对于提升代码的鲁棒性和处理复杂输入至关重要,广泛应用于数据清洗、指令系统、配置文件读取等场景。本文以一道经典的华为OD机试题目“坐标移动”为例,深入探讨如何利用C++ STL进行严谨的字符串验证与分割,确保程序在面对各种边界条件和非法输入时仍能稳定运行,从而自然引出对工业级代码健壮性设计的思考。

weixin_30292843的博客 1351

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【STL】 找子串出现的次数

目的: 找出一个字符串中出现某子串的次数。 思路: 主要用的是string容器的find方法,find方法主要是找到字符串中出现某子串的位置。 例如: s1 = "abcdefgh" s2 = "de" s1.find(s2) = 3 但是如果要求出现的子串的次数,则...

piano_diano的博客 1392

C++的STL模板使用(机试冲呀!)

如果能够使用STL模板,那写代码的速率真是up up up! 但是要记得如何使用,方法就是熟能生巧吧。这里做下总结,快速复习一下。 1、vector 头文件 #Include <vector> vector可以理解成变长数组 定义:vector<typename> name; 如 vector<int> vi; 若为二维数组 vector<int> vi[100]; 元素访问:1)通过下标 vi[index] 2)通过迭代器...

cutefery的博客 408

OpenJudge NOI 2.1 2472:子串计算

设map类型对象mp,键为子串,值为子串的个数。这样使用mp对象,就能通过子串获取到子串的个数。与解法2类似,设sub数组,保存Node类型对象,sub数组中的对象始终按子串字典序升序来排列。枚举结束后,对sub数组根据每个元素的子串按字典序从小到大进行排序,而后遍历输出。,每次新建一个键值对,实际上是在红黑树中插入一个新的结点,复杂度为。记输入字符串的长度为n,枚举子串的个数数量级为。如果字符串s长度为n,那么子串个数数量级为。字符串s的最大长度为100,子串个数为。

君义NOIP的博客 1572

机试字符串处理完全指南:从KMP算法到STL的string技巧

本文全面解析机试中字符串处理的核心技术,从KMP算法的动态规划本质到STL string的高效应用。针对高校真题和企业面试高频考点,详细讲解KMP next数组优化、字符串匹配变种问题解法,以及Trie树、滑动窗口等进阶技巧,帮助考生系统掌握字符串处理的核心方法与性能优化策略。

weixin_29266007的博客 432

机试备考——刷题攻略

  为了准备保研的机试,在学习完常见算法后,开始了刷题!看了一些大佬的心得分享,总结了一下。   在刷LeetCode的时候还要有一定的策略,比如按标签刷题,分为数组、字符串、链表、双指针、BFS/DFS,二叉树、二分法、分治法、回溯法、数学、栈、堆、队列等按类型集中刷,刷完后做笔记。   按标签刷完后,再补top100中没刷到的题。   接下来我总结了一下我依照上述策略刷题的题目和答案。 ...

苣篛 3091

C++机试高效备考:STL容器与算法实战指南

STL容器和算法是C++编程的核心组成部分,理解其原理和应用对提升编程效率至关重要。STL通过模板技术实现了泛型编程,其中vector、unordered_map等容器基于不同数据结构实现,分别适用于动态数组和快速查找场景。在工程实践中,合理选择容器能显著提升性能,如unordered_map利用哈希表实现O(1)查找复杂度。算法方面,sort、next_permutation等函数封装了高效实现,避免了重复造轮子。这些技术特别适用于华为OD等大厂机试场景,能帮助开发者快速解决字符串处理、排列组合等典型问题

weixin_32075843的博客 252

OJ题目——《找子串》(a的子串中有多少个也同时是b的子串)

利用C++的STL解《找子串》 1534:找子串 时间限制: 1 S | 内存限制: 8192 KB 描述 已知由小写字母组成的两个字符串a和b,问a的子串中有多少个也同时是b的子串。在统计过程中,如果遇到a的子串重复多次出现,则算作一个。 注意几个事项:任意字符串都是自己的子串,空字符串是任意字符串的子串。 例如当a=“ababc”,b=“aab”时,符合条件的a的子串有”"、“a”、“ab”、“b”,其中虽然后三个子串在a中多次出现,但分别只算作一个,因此答案应该是4。 输入 一个正整数n,表示案例的数

qq_29749589的博客 828
上一篇: 【模板】日期类 (Day of Week题解)
下一篇: 【模板】动态规划之背包问题(01背包、多重背包、完全背包) (邮票、Piggy-bank题解)
coderwait
博客等级 码龄9年 20粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值