科大讯飞秋招笔试真题 - 字符拼接 字典序最小的字符串拼接 圆心覆盖

字符拼接

题目描述

给定两个由可见字符和空格组成的字符串s和t,其中字符串t的长度为偶数.
请将t的后半部分嫁按到s的未尾,并输出嫁接后的s以及t 的前半部分。
本题字符串的字符集为 ASCIl 码在 32 到 126 之间的字符,即大小写字母、数字、标点符号和空格。

输入

第一行输入一个长度为n (1 ≤n≤ 100)的字符串,s1,s2,…sn。
第二行输入一个长度为 m (2 <= m <= 100)的字符串,t1,t2…tm。保证 m为偶数。
除此之外,保证8和t中只包含可见字符和空格。

输出

第一行输出嫁接后的字符串s。
第二行输出t的前半部分。

示例1

输入

kou yukari

输出

kouari yuk

示例2

输入

?? (ak90 r)

输出

??0 r) (ak9

思路和代码

签到题,没有任何难度。

#include<iostream>#include<vector>#include<queue>#include<tuple>#include<limits>usingnamespacestd;usingll=longlong;constll INF=1e18;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);string s;string t;getline(cin,s);getline(cin,t);intn=t.size();// 分割得到t的前半部分string frontPart=t.substr(0,n/2);// 分割得到t的后半部分string backPart=t.substr(n/2);cout<<s+backPart<<endl;cout<<frontPart;return0;}

字典序最小的字符串拼接

题目描述

对于给定的长度为n,仅由字符串构成的数组{a1,a2…,an},每一个字符串都仅由小写字母构成。你需要将全部字符串按照任意顺字拼接成一整个字符串(但是不改变每个字符串内部的顺序),随后恰好删除其中的一个字符,
请你输出所有可能的拼接结果中,字典序最小的结果。
【名词解释】
字符串的第一个字符开始逐个比较,直至发现第一个不同的位置,比较这个位置字符的字母表顺序,字母序较小的字符串字典序也较小;如果比较到其中一个字符串的结尾时依旧全部相同,则较短的字符串字典序更小。

输入

第一行输入一个整数n(1 <= n <= 8),表示数组的长度。
第二行输入n个字符串a1,a2,……,an (1 <= len(ai)<= 10),每个字符串仅由小写字母构成。

输出

输出一个字符串,表示所有可能的拼接结果中,字典序最小的结果。

示例1

输入

3 za ba bb

输出

ababb

思路和代码

思路:枚举 + 栈 + 自定义排序

n <= 10数据范围较小,直接枚举要删除字符位于第i`个字符中,具体逻辑为

  1. 例如当前要删除字符位于第i个字符串中,使用单调栈移除指定字符串中首个当前字符ASCII大于下一个字符的位置的字符,形成新的字符串。
  2. 将第i个字符串替换删除单个字符之后的字符串
  3. 进行自定义排序,排序规则为a +b < b + a,拼接当前情况所能组成的最小字典序字符串。

记录所有枚举情况下所能组成最小字典序的字符串就是结果。

#include <iostream> #include <vector> #include <queue> #include <tuple> #include <limits> #include<algorithm> using namespace std; using ll = long long; const ll INF = 1e18; bool cmp(string &a, string &b) { return a +b < b +a; } // n的数据小直接枚举要删除字符属于哪个字符串 string solve(vector<string>& words) { string res; int n = words.size(); // 枚举要移除字符所在字符串 for (int i = 0; i < n; i++) { vector<string> wordsCopy(words.begin(), words.end()); string tmp = words[i]; int m = tmp.size(); if (m == 1) { wordsCopy[i] = ""; } else { // 类似于单调栈的思路决定删除字符位置 int j = 1; for (; j < m; j++) { if (tmp[j] < tmp[j-1]) { break; } } wordsCopy[i] = tmp.erase(j-1, 1); } // 自定义排序 sort(wordsCopy.begin(), wordsCopy.end(), [](string &a, string &b) { return a +b < b +a; }); string currentRes; for (auto &tmp : wordsCopy) { currentRes += tmp; } if (res.empty() || res > currentRes) { res = currentRes; } } return res; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<string> words(n); for (int i = 0; i < n; i++) { cin >> words[i]; } string res = solve(words); cout << res; return 0; }

圆心覆盖

题目描述

现在需要在坐标平面上以某一点 C 为圆心画一个圆,且该圆心必须位于坐标轴上。
请你找到一个最小的半径r,使得这圆能够覆盖不少于[n/2]个给定点,并输出这个最小半径。
【名词解释】
坐标轴:包含x轴和y轴。x 轴表示形如(x,0)的所有点;y轴表示形如(0,y)的所有点。
覆盖:若点 P 到圆心 c 的欧氏距离不超过圆的半径,则称该圆覆盖点 P。

输入

第一行输入一个整数n (2 ≦n ≦ 10^5),表示点的数量。
接下来n行,每行输入两个整数
xi,yi(-10^5<= xi,yi<=10^5),表示第i个点的坐标。

输出

输出一个实数,表示能够覆盖至少[n/2]个给定点的、以坐标轴上某点为圆心的最小圆的半径。
误差需要小于10^-6,要求保留6位小数输出。

示例1

输入

4 -1 0 1 0 0 1 100 100

输出

1.000000

示例2

输入

3 1 0 2 0 50 50

输出

0.500000

思路和代码

思路:二分 + 差分

  1. 使用二分枚举半径,检验当前半径是否可以圆心位于坐标轴上并且满足[n/2]点包括内。
  2. 判断逻辑:假设当前圆心位于x轴,计算每个点能被包含在内的圆心的x轴的范围,使用差分 + 扫描线计算重叠区间个数,如果个数大于 >= [n/2]说明满足。假设圆心位于y轴判断方式类似。
#include<bits/stdc++.h>usingnamespacestd;structEvent{doublepos;inttype;// +1 表示区间开始,-1 表示区间结束booloperator<(constEvent&other)const{if(pos==other.pos)returntype<other.type;returnpos<other.pos;}};intn;vector<pair<int,int>>pts;boolcheck(doubler){intneed=(n+1)/2;vector<Event>events;doubler2=r*r;// 圆心在 x 轴for(auto&p:pts){doublex=p.first,y=p.second;if(r2<1.0*y*y)continue;// 没法覆盖doubledx=sqrt(r2-1.0*y*y);events.push_back({x-dx,+1});events.push_back({x+dx,-1});}// 扫描线sort(events.begin(),events.end());intcur=0;for(auto&e:events){cur+=e.type;if(cur>=need)returntrue;}events.clear();// 圆心在 y 轴for(auto&p:pts){doublex=p.first,y=p.second;if(r2<1.0*x*x)continue;doubledy=sqrt(r2-1.0*x*x);events.push_back({y-dy,+1});events.push_back({y+dy,-1});}sort(events.begin(),events.end());cur=0;for(auto&e:events){cur+=e.type;if(cur>=need)returntrue;}returnfalse;}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);cin>>n;pts.resize(n);for(inti=0;i<n;i++){cin>>pts[i].first>>pts[i].second;}// 二分答案doubleL=0,R=0;for(auto&p:pts){doubled=sqrt(1.0*p.first*p.first+1.0*p.second*p.second);R=max(R,d);}for(intiter=0;iter<50;iter++){// 精度二分doublemid=(L+R)/2;if(check(mid))R=mid;elseL=mid;}cout<<fixed<<setprecision(6)<<R<<"\n";return0;}

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

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

相关文章

基于SpringBoot的KPL赛事综合管理系统的设计与实现

KPL赛事综合管理系统课题背景 电子竞技产业近年来发展迅猛&#xff0c;尤其是移动电竞领域&#xff0c;王者荣耀职业联赛&#xff08;KPL&#xff09;作为国内顶级移动电竞赛事&#xff0c;其规模与影响力持续扩大。随着赛事体系日趋复杂&#xff0c;传统人工管理模式已难以应对…

新闻学学生留学信息差避坑指南:掌握这些,学习留学两不误

新闻学留学的核心竞争力在于把控信息差&#xff0c;其受地域媒体环境、行业认证等因素影响极深&#xff0c;易陷入高投入低回报困境。本文从选校、申请、学业、就业四大环节&#xff0c;拆解核心陷阱&#xff0c;助力平衡学术与职业发展。一、选校避坑&#xff1a;跳出排名&…

基于python的搜索引擎设计与实现

搜索引擎设计与实现的课题背景 在当今信息爆炸的时代&#xff0c;搜索引擎已成为人们获取信息的重要工具。随着互联网数据的快速增长&#xff0c;如何高效地检索、排序和呈现信息成为计算机科学领域的重要研究方向。Python作为一种高效、灵活的编程语言&#xff0c;因其丰富的库…

基于SpringBoot的车辆违章信息管理系统的设计与实现

车辆违章信息管理系统的背景与意义 随着城市化进程加快和机动车保有量激增&#xff0c;交通违章现象日益频发&#xff0c;传统人工管理模式在数据处理效率、信息共享和执法透明度等方面面临严峻挑战。据公安部统计&#xff0c;2022年全国机动车保有量达4.17亿辆&#xff0c;同比…

基于Bilibili青少年模式使用情况的数据分析系统设计与实现开题报告

基于Bilibili青少年模式使用情况的数据分析系统设计与实现开题报告 一、研究背景与意义 &#xff08;一&#xff09;研究背景 随着数字技术的深度渗透&#xff0c;青少年已成为互联网消费的核心群体。截至2025年&#xff0c;我国青少年网民规模突破2.8亿&#xff0c;日均上网时…

《把脉行业与技术趋势》-59-《如何快速了解一个行业》哪些人需要如何快速了解一个行业?

《如何快速了解一个行业》是一本极具实战价值的方法论指南&#xff0c;适用于多种人群。不同角色因目标不同&#xff0c;对“快速了解”的需求和侧重点也各不相同。一、哪些人需要“快速了解一个行业”&#xff1f;人群典型场景核心诉求1. 投资者&#xff08;VC/PE/股票投资者&…

基于Hadoop的南昌市房价预测系统的设计与实现开题报告

基于Hadoop的南昌市房价预测系统的设计与实现开题报告 一、研究背景与意义 &#xff08;一&#xff09;研究背景 随着我国房地产市场的持续发展与调控政策的不断深化&#xff0c;房价走势已成为关乎民生福祉、经济稳定与城市发展的核心议题。南昌市作为江西省省会&#xff0c;近…

12.平铺视图、窗口、消息框部件(lv_tileview,lv_win,lv_msgbox)

12.平铺视图、窗口、消息框部件(lv_tileview,lv_win,lv_msgbox)Hello World

【C语言】详解C语言字节打包:运算符优先级、按位或与字节序那些坑

详解C语言字节打包&#xff1a;运算符优先级、按位或与字节序那些坑 在嵌入式开发、网络编程中&#xff0c;字节打包&#xff08;将多个单字节数据拼接为多字节数据&#xff09;是高频操作&#xff0c;而新手很容易在运算符使用、优先级判断上踩坑。本文将以一段实际的C语言字节…

我终于狠下心改变家里的网络架构!原来是我高估了自己

从去年2025年末的时候&#xff0c;小白就一直想着把自己辛苦搭建的ESXI虚拟层关闭&#xff0c;改为家用路由器拨号的模式&#xff0c;但是一直迟迟没有动手。 果然&#xff0c;人一旦进入了舒适区&#xff0c;就很难走出来。网络部署一旦稳定使用&#xff0c;就算是想到有能优…

基于数据挖掘的电商用户行为分析系统设计与实现开题报告

基于数据挖掘的电商用户行为分析系统设计与实现开题报告 一、研究背景与意义 &#xff08;一&#xff09;研究背景 在数字经济高速发展的浪潮下&#xff0c;我国电商行业已进入存量竞争时代&#xff0c;用户精细化运营成为企业核心竞争力。截至2025年&#xff0c;我国电商交易总…

什么是信息学奥数(NOI)?

“信息学奥数”通常是指信息学奥林匹克竞赛&#xff0c;全称为全国青少年信息学奥林匹克竞赛&#xff08;NOI&#xff0c;National Olympiad in Informatics&#xff09;&#xff0c;是中国面向中学生的一项高水平计算机科学竞赛活动。它属于五大学科奥林匹克竞赛之一&#xff…

AD域控批量配置域用户下次登录需要修改密码

##### 读取csv文件批量设置域用户下次登录需要修改密码Import-Module ActiveDirectory# 配置参数(SamAccountName参数为用户账号所在的列) $CSVFile = "C:\temp\All_AD_Users.csv" $UsernameColumn = "…

2026.1.14总结

今天主要完成python基础语法的学习,大致过了一遍Python 基础语法 1.1 变量、数据类型、运算符变量与数据类型 name = "Python学习" # 字符串 age = 3 # 整数 height = 1.75 # 浮点数 …

Stable Diffusion Web UI 绘世版 v4.6.1 整合包:一键极速部署,深度解决 AI 绘画环境配置与 CUDA 依赖难题

对于从事 AI 创作或 AIGC 研究的开发者来说&#xff0c;Stable Diffusion (SD) 是目前本地化部署的首选框架。然而&#xff0c;原生环境搭建往往涉及复杂的 Python 虚拟环境管理、CUDA 版本的严格匹配以及大量的 Git 依赖拉取&#xff0c;任何一个环节出错都可能导致部署失败。…

这3个volatile使用错误,正在毁掉你的多线程程序

写C/C多线程程序&#xff0c;绕不开线程安全问题。很多程序员看到共享变量&#xff0c;第一反应是加个volatile关键字&#xff0c;以为这样就能保证线程安全了。 但这是错的。 volatile在多线程中根本不够用&#xff0c;它只能防止编译器优化&#xff0c;不能保证原子性&…

巴菲特的公司治理观:股东利益至上

巴菲特的公司治理观:股东利益至上 关键词:巴菲特、公司治理观、股东利益至上、价值投资、长期主义 摘要:本文深入探讨了巴菲特“股东利益至上”的公司治理观。从背景介绍入手,阐述了研究目的、预期读者、文档结构和相关术语。详细剖析了该治理观的核心概念、算法原理(类比…

Dnspy附加进程调试第三方App的说明

从用友工程师那学到如何用Dnspy来调试u9的dll文件。时间久了&#xff0c;不太记得具体如何操作。今天要分析一个设备的测试程序如何调用我的一个接口带来的问题&#xff0c;重新整理下思路&#xff0c;一步一步操作一遍&#xff0c;问题最终完美搞定。用的不多&#xff0c;怕忘…

提示工程架构师领域:高效提示团队打造的策略探讨

打造高效提示团队&#xff1a;提示工程架构师领域的策略指南 关键词&#xff1a;提示工程架构师、高效提示团队、策略、沟通协作、人才培养、工具选择 摘要&#xff1a;本文深入探讨了在提示工程架构师领域打造高效提示团队的策略。首先介绍了提示工程领域的背景&#xff0c;阐…

鲜花:我们的历史教育会变成什么样子?

站在学生的角度,关于历史教育的探讨。我们的历史教育会变成什么样子? 这是一个理科的时代。曾经有一句半玩笑话“从小到大生活中的几乎所有困难都源自理化能力不足”。随着国家高考与录取政策的导向,物化在考试中的…