C-偶遇行军蚁(遇到过的题,做个笔记)

我的代码:

思路就是把每一行看成一个字符串,然后逐渐增加字符就行

#include <iostream>
#include <vector>
using namespace std;
int main()
{string s;int n;cin >> n;			//读入行数cin >> s;			//读入字符串vector<string>arr(n);		//定义string类数组if (n == 1)			//发现只弄成1行,则直接原样输出就行{cout << s << endl;;return 0;}int now = 0;	//现在所在行int dx = 1;			//行偏移量for (int i = 0; i < s.size(); i++){arr[now] += s[i];			//将该行字符串加上字符now += dx;				//挪动所在行if (now == 0 || now == n-1)	dx = -dx;		//如果到第一行或最后一行,行偏移要取反}for (int i = 0; i < n; i++)cout << arr[i];return 0;
}

以前写的题解(不是很好)

#include <iostream>
#include <vector>			//为了使用vector容器
using namespace std;
int main()
{int n;			//多少行string s;			//要输入的字符串cin >> n;cin >> s;vector<vector<char>>arr(n, vector<char>(1005));	//用vector容器弄二维数组,n行,列数先填大些,后续会判断到底多少列,默认数组里的量全是0int x = 0;			//arr数组的横坐标int y = 0;			//arr数组的纵坐标int k = 0;				//用来对字符串s进行索引int list_num = 0;			//定义arr数组的实际列数if(n==1)			//特殊判断{cout<<s;return 0;}while (1)			//不知道循环几次就死循环,到时候跳过{int flag = 1;		//1代表还没终止(还没到字符串最后)for (int i = 0; i < n && flag == 1; i++)		//往下走,只要没终止就一直把字符串s的量填到arr数组中{							//因为有n行,所以循环n次arr[x++][y] = s[k++];		//沿着路径往下走,注意是后自增(画图,手写坐标就明白了)if (k == s.size())			//当k==字符串s的大小,则表示字符串的量全填进arr数组中了{flag = 0;		//0代表终止了,到字符串最后了break;			//跳出for循环}}list_num++;		//沿着路径一直往下走的走完了,让实际列数list_num加1x = x - 2;		//若n为4,则这里时,x为4,-2后,x变为2,,这么是为了下面的后自增(画图,自己手写坐标就知道了)y = y + 1;		//若n为4,则这里时,y为0.+1后,y=1,这么是为了下面的后自增(画图,自己手写坐标就知道了)for (int i = 0; i < n - 2 && flag == 1; i++)//该斜着走,循环次数是n-2次,只要没终止就一直把字符串s的量填到arr数组中{list_num++;		//因为斜着走,实际列数必定每次循环都会加1arr[x--][y++] = s[k++];	//沿着路径该斜着走了,注意是后自增(画图,手写坐标就明白了)if (k == s.size()){flag = 0;break;}}if (flag == 0)	break;	//当终止了(即到字符串最后了)结束while死循环}for (int i = 0; i < n; i++)				//开始输出arr数组中的数,就按正常输出2维数组那样输出{for (int j = 0; j < list_num; j++)			//注意这里j是<list_num (跟实际有n行,i<n一个道理){if (arr[i][j] == 0)	continue;	//当发现该坐标,数组中的数是0,则跳过(出现0跟当初定义vector容器时有关)else cout << arr[i][j];			//否则就正常输出数组中正常的数}}return 0;
}

参考(来自学长们题解):

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

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

相关文章

一点点金融

一点点金融 价值投资 需求 > 有限 > 不可逆 > 优势 > 长期持有者多趋势分析 改进MACD策略&#xff0c;使用涨跌幅比值RSI计算MACD原始MACD计算改进思路&#xff1a;使用涨跌幅比值RSI计算MACD 价值投资 需求 > 有限 > 不可逆 > 优势 > 长期持有者多…

[pyenv] 1. 安装与使用

在看了几个开源的python环境管理器的评论后, 我打算入手 pyenv, 该项目有以下几个优势: 该项目使用纯shell脚本语言实现, 天然亲和linux开发环境.通过设置的PATH环境变量和shims方法隔离的实现方案非常轻量化.子命令引入了compgen补全功能, 对命令输入操作友好.源码开源, 可扩展…

《pytorch深度学习实战》学习笔记第2章

第2章 预训练网络 讨论3种常用的预训练模型&#xff1a; 1、根据内容对图像进行标记&#xff08;识别&#xff09; 2、从真实图像中生成新图像&#xff08;GAN&#xff09; 3、使用正确的英语句子来描述图像内容&#xff08;自然语言&#xff09; 2.1 获取一个预训练好的网络…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)

本篇内容对应 “2.4 生成验证码” 小节 和 “4.7 优化登陆模块”小节 视频链接 1 Kaptcha介绍 Kaotcga是一个生成验证码的工具。 你的网站验证码是什么&#xff1f; 在我们这个牛客论坛项目&#xff0c;验证码分为两部分 给用户看的是图片&#xff0c;用户根据图片上显示的…

什么牌子开放式耳机好用?优选五大高分好物真诚分享

对于习惯长时间佩戴耳机的朋友来说&#xff0c;入耳式耳机固然能够提供较优质的音质体验。但是&#xff0c;由于其较为封闭的设计以及对耳洞的压迫&#xff0c;舒适感较差&#xff0c;长时间佩戴可能会对听力造成一定的影响。因此&#xff0c;开放式耳机的出现为音乐发烧友们提…

Leetcode 684. 冗余连接

心路历程&#xff1a; 这道题属于图论的经典连通问题&#xff0c;这道题翻译过来就是&#xff0c;找到破开图中环的一条边&#xff1b;再翻译过来就是&#xff0c;从后往前遍历edges&#xff0c;依次连接边&#xff0c;当发现新连接的边已经有相同父节点时&#xff08;已经马上…

基于单片机风力发电机迎风面对风向的追踪系统设计

**单片机设计介绍&#xff0c;基于单片机风力发电机迎风面对风向的追踪系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机风力发电机迎风面对风向的追踪系统设计是一个涉及单片机编程、传感器技术、机械控制等多个领域的综…

java日志框架简介

文章目录 概要常用日志框架常见框架有以下&#xff1a;slf4j StaticLoggerBinder绑定过程&#xff08;slf4j-api-1.7.32 &#xff09;JCL 运行时动态查找过程&#xff1a;&#xff08;commons-logging-1.2&#xff09;使用桥接修改具体日志实现 一行日志的打印过程开源框架日志…

面试算法-153-旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,…

Java项目:基于Springboot+vue实现的医院住院管理系统设计与实现(源码+数据库+开题报告+任务书+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的医院住院管理系统设 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简…

基于Springboot+Vue实现前后端分离社团管理系统

一、&#x1f680;选题背景介绍 &#x1f4da;推荐理由&#xff1a; 21世纪时信息化的时代&#xff0c;几乎任何一个行业都离不开计算机&#xff0c;将计算机运用于社团管理也是十分常见的。过去使用手工的管理方式对大学生社团进行管理&#xff0c;造成了管理繁琐、难以维护等…

基于java+SpringBoot+Vue的房屋租赁系统设计与实现

基于javaSpringBootVue的房屋租赁系统设计与实现 开发语言: Java 数据库: MySQL技术: Spring Boot JSP工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 房源浏览模块&#xff1a;展示可租赁的房源信息&#xff0c;用户可以根据条件筛选房源。 预约看房模块&#…

java项目基于Springboot和Vue的高校心理教育辅导系统的设计与实现

今天要和大家聊的是基于Springboot和Vue的高校心理教育辅导系统的设计与实现 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同学 &#x1f495;&…

springboot实战---5.最简单最高效的后台管理系统开发

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;SpringBoot &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&…

安达发|APS软件在皮具箱包生产工艺中的应用

APS软件&#xff0c;即高级生产计划排程系统&#xff08;Advanced Planning and Scheduling&#xff09;&#xff0c;在皮具箱包生产工艺中的应用至关重要。它通过高效的生产计划和资源优化&#xff0c;帮助企业降低成本、提高生产效率和市场响应速度。以下是APS软件在皮具箱包…

day03-Docker

1.初识 Docker 1.1.什么是 Docker 1.1.1.应用部署的环境问题 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署时会碰到一些问题&#xff1a; 依赖关系复杂&#xff0c;容易出现兼容性问题开发、测试、生产环境有差异 例如一个项目中&#xff0c;部署时需要依…

代码随想录学习Day 24

93.复原IP地址 题目链接 讲解链接 本题属于切割问题&#xff0c;切割问题需要使用回溯算法来将所有的结果搜索出来&#xff0c;与前一题分割回文串是类似的。本题的树形结构如下图所示&#xff1a; 回溯三部曲&#xff1a; 1.递归函数参数及返回值&#xff1a;参数为待分割…

2012年认证杯SPSSPRO杯数学建模D题(第一阶段)人机游戏中的数学模型全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 D题 人机游戏中的数学模型 原题再现&#xff1a; 计算机游戏在社会和生活中享有特殊地位。游戏设计者主要考虑易学性、趣味性和界面友好性。趣味性是本质吸引力&#xff0c;使玩游戏者百玩不厌。网络游戏一般考虑如何搭建安全可靠、丰富多彩的…

JVM高级篇之GC

文章目录 版权声明垃圾回收器的技术演进ShenandoahShenandoah GC体验Shenandoah GC循环过程 ZGCZGC简介ZGC的版本更迭ZGC体验&使用ZGC的参数设置ZGC的调优 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马…

【C++】拆分详解 - 内存管理

文章目录 前言一、C/C内存分布二、C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free三、C内存管理方式  3.1 new/delete操作内置类型  3.2 new和delete操作自定义类型  3.3 operator new与operator delete函数 四、new和delete的实现原理  4.1 内置类型…