解决C++ 遇笔试题输入[[1,2,3,...,],[5,6,...,],...,[3,1,2,...,]]问题

目录

  • 0 引言
  • 1 思路
  • 2 测试结果
  • 3 完整代码
  • 4 总结

0 引言

  现在面临找工作问题,做了几场笔试,遇到了一个比较棘手的题目就是题目输入形式如下:

[ [3,1,1], [3,5,3], [3,2,1] ]

当时遇到这个问题还是比较慌的,主要是之前没有遇到这样的输入可能是太菜没刷的题目少了,在这里记录一下自己解决此类问题的方法,还有一个目的就是集思广益,看看还有没有其他解法我想学习学习。

1 思路

以下为我个人解题思路,仅供参考,希望有大佬能在评论区给出你的妙招,无论什么编程语言都可以,主打一个一起学习!!!

  • 首先:通过getline(cin,s)直接整行获取输入并存入字符串string s中,将获得的字符s中[[,[变为 ' ' (空字符)]]变为] ,以上述为例:处理后结果为

3,1,1] 3,5,3] 3,2,1]

  • 接着:使用stringstream ss(s)将字符串流分割字符串并存入数组,再使用getline(ss, token, ']')意思就是遇到]就将前面字符存入token中,并且需要循环存放到token中,接着上步结果处理得到

3,1,1
3,5,3
3,2,1

  • 最后:使用一维vector存放行矩阵,用二维vector存放多行矩阵即可

话不多说直接上写好的函数代码:

vector<vector<int>> vcenums(string input) {vector<vector<int>> array;// 第一步:for(int i = 0; i < input.size()-1; i++){if((input[i+1] == '[' && input[i] == '[') || (input[i+1] == '[' && input[i] == ',')){input[i] = ' ';input[i+1] = ' ';}else if(input[i+1] == ']' && input[i] == ']'){input[i+1] = ' ';}}input.erase(remove(input.begin(), input.end(), ' '), input.end());// cout << input << endl;           // 可以取消注释处理结果// 将获取的数据存放到vector中stringstream ss(input);string token;while (getline(ss, token, ']')) {// cout << token << endl;vector<int> row;stringstream row_ss(token);string element;while (getline(row_ss, element, ',')) {row.push_back(stoi(element));}array.push_back(row);}return array;
}

2 测试结果

测试用例输入:[[2,3,5,8,10],[11,2,1,5,4],[1,2,7,4,5],[6,9,0,1,4]]
在这里插入图片描述

3 完整代码

以下为完整代码仅供参考,如若有错欢迎提出,我及时更正

#include <iostream>
#include <vector>
#include <sstream>
#include <algorithm>
using namespace std;vector<vector<int>> vcenums(string input) {vector<vector<int>> array;for(int i = 0; i < input.size()-1; i++){if((input[i+1] == '[' && input[i] == '[') || (input[i+1] == '[' && input[i] == ',')){input[i] = ' ';input[i+1] = ' ';}else if(input[i+1] == ']' && input[i] == ']'){input[i+1] = ' ';}}input.erase(remove(input.begin(), input.end(), ' '), input.end());cout << input << endl;// 使用字符串流分割字符串并存入数组stringstream ss(input);string token;while (getline(ss, token, ']')) {cout << token << endl;vector<int> row;stringstream row_ss(token);string element;while (getline(row_ss, element, ',')) {row.push_back(stoi(element));}array.push_back(row);}return array;
}int main() {string s;vector<vector <int>> M;while(getline(cin,s)){M = vcenums(s);// 打印矩阵for(auto nums : M){for(auto i : nums){cout << i << " ";}cout << endl;}}return 0;
}

4 总结

其实可能有些笔试题不是很难,难在输入如何处理,不知道如何处理从而导致消耗了大量做其他题目时间,所以遇到困难的输入还是需要锻炼自己用代码记录一下并突破自己,下次遇到同样的输入情况就不会消耗大量时间。算是一种积累,以后可能会整个专栏存放一些不常见得输入。

这道笔试的题目题目描述是从矩阵的左上角寻找最优路径到达矩阵右下角(动态规划题)
这道题本身不难,就是有些时候真不知道处理输入会浪费大量时间,通过上面得处理就可以得到二维矩阵,然后就利用动态规划求出最短路径。

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

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

相关文章

内网穿透实战应用-如何通过内网穿透实现远程发送个人本地搭建的hMailServer的邮件服务

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…

智慧园区能源管理系统可以本地私有化部署吗?

答案是肯定的&#xff0c;智慧园区能源管理系统可以本地私有化部署! 随着社会的发展和经济的增长&#xff0c;能源消耗逐渐成为影响社会发展的重要因素。为了更好地管理能源&#xff0c;提高能源利用效率&#xff0c;降低能源消耗成本&#xff0c;智慧园区能源管理系统应运而生…

Go语言在机器学习中有未来吗?

Go 是一种开源编程语言&#xff0c;最初由 Google 设计&#xff0c;用于优化系统级服务的构建和使用、在大型代码库上轻松工作&#xff0c;以及利用多核联网机器。 Go 于 2009 年推出&#xff0c;作为一种静态类型和编译型编程语言&#xff0c;深受 C 语言的影响&#xff0c;注…

idea 无法识别maven的解决

问题描述 从git拉取代码或者修改文件夹以后&#xff0c;整个项目所有依赖爆红无法通过修改或者重新加载maven解决版本为idea 2021 问题定位 maven的版本太高&#xff0c;而idea的般本太低&#xff0c;导致识别的时候稳定性差 解决 使用idea原生的maven版本 选择已捆绑的m…

win10 ping不通 Docker ip(解决截图)

背景&#xff1a; win10下载了docker desktop就是这个图&#xff0c;然后计划做一个springboot连接docker。 docker部署springboot :docker 部署springboot(成功、截图)_總鑽風的博客-CSDN博客 问题&#xff1a;spring boot部署docker后&#xff0c;docker接口通了&#xff0…

Tomcat 日志乱码问题解决

我就是三井&#xff0c;一个永不放弃希望的男人。——《灌篮高手》 Tomcat 日志乱码问题解决 乱码原因&#xff1a;字符编码不一致 如&#xff1a;国内电脑一般都是GBK编码&#xff0c;而Tomcat日志使用的是UTF-8编码 解决方法&#xff1a;将对应字符编码由 UTF-8 改为 GBK 即…

【业务功能篇97】微服务-springcloud-springboot-电商购物车模块-获取当前登录用户的购物车信息

购物车功能 一、购物车模块 1.创建cart服务 我们需要先创建一个cart的微服务&#xff0c;然后添加相关的依赖&#xff0c;设置配置&#xff0c;放开注解。 <dependencies><dependency><groupId>com.msb.mall</groupId><artifactId>mall-commo…

串行协议——USB驱动[基础]

多年前的学习记录&#xff0c;整理整理。 一、USB协议基础 二、Linux内核USB驱动源码分析 USB中不同类型设备使用的 设备描述符(设备类\设备子类\设备协议) 配置不同,典型的以下几种:1)HID设备: Human Input Device人工输入设备, 如鼠标\键盘\游戏手柄等.2)CDC设备: Communi…

无涯教程-Flutter - 安装步骤

本章将指导您详细在本地计算机上安装Flutter。 在Windows中安装 在本节中&#xff0c;让无涯教程看看如何在Windows系统中安装 Flutter SDK 及其要求。 第1步 - 转到URL,https: //flutter.dev/docs/get-started/install/windows并下载最新的Flutter SDK。 第2步 - 将zip归档…

第二次作业

1.编写脚本for1.sh,使用for循环创建20账户&#xff0c;账户名前缀由用户从键盘输入&#xff0c;账户初始密码由用户输入&#xff0c;例如: test1、test2、test3、.....、 test10 编写脚本for1.sh 执行脚本&#xff1a;bash for.sh 2&#xff0c;编写脚本for2.sh,使用for循环,通…

Unity资源无法下载 反复提示需同意Terms of Service和EULA 同意后无效的解决方案

前言 最近在玩Unity&#xff0c;跟着tutorial做点项目&#xff0c;但是在下载免费资源时&#xff0c;只有从网站上点“打开Unity”&#xff0c;才能在本地Unity Editor的Package Manager里找到这个资源&#xff08;且点一下下面的刷新就没有了&#xff09;&#xff0c;并且点击…

【数据结构——树】二叉树的遍历(前序、中序、后序、层序)迭代+递归

文章目录 二叉树的定义二叉树的遍历方式前序遍历递归DFS迭代&#xff08;栈&#xff09; 中序遍历递归DFS迭代&#xff08;栈&#xff09; 后序遍历递归DFS迭代&#xff08;栈&#xff09; 层序遍历迭代&#xff08;队列&#xff09; 二叉树的定义 二叉树是一种常见的树状数据…

Java“牵手”京东商品评论数据接口方法,京东商品评论接口,京东商品评价接口,行业数据监测,京东API实现批量商品评论内容数据抓取示例

京东平台商品评论数据接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取京东商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、评论内容、评论日期、评论图片、追评内容等详细信息 。 获取商品评论接口API是一种用于获取…

【Hello Algorithm】二叉树相关算法

本篇博客介绍&#xff1a;介绍二叉树的相关算法 二叉树相关算法 二叉树结构遍历二叉树递归序二叉树的交集非递归方式实现二叉树遍历二叉树的层序遍历 二叉树难题二叉树的序列化和反序列化lc431求二叉树最宽的层二叉树的后继节点谷歌面试题 二叉树结构 如果对于二叉树的结构还有…

K8s 持久化存储有几种方式?一文了解本地盘/CSI 外接存储/K8s 原生存储的优缺点

当今云原生环境中&#xff0c;Kubernetes&#xff08;K8s&#xff09;已成为既定的容器编排工具。随着 K8s 的普及&#xff0c;存储也成为 K8s 用户关注的一个重要问题&#xff1a;为了满足不同的场景需求&#xff0c;K8s 可以支持基于不同架构的多种存储方案。这些方案间有什么…

Windows——安装 Microsoft 便签

打开 Microsoft Store。 搜索 Microsoft 便签&#xff0c;点击安装。

git co 命令是什么意思,用法是怎么样的

偶然看到同事使用 git co feat/xxx 来操作 git&#xff0c;以为 co 是什么 git 新命令&#xff0c;看起来很牛逼&#xff0c;所以问了下 chatgpt&#xff0c;chatgpt 的回答如下&#xff1a; git co 是 git checkout 的缩写形式&#xff0c;需要在Git的全局配置或别名配置中启用…

AJAX学习笔记3练习

AJAX学习笔记2发送Post请求_biubiubiu0706的博客-CSDN博客 1.验证用户名是否可用 需求,用户输入用户名,失去焦点-->onblur失去焦点事件,发送AJAX POST请求,验证用户名是否可用 新建表 前端页面 WEB-INF下新建lib包引入依赖,要用JDBC 后端代码 package com.web;import jav…

线性代数的学习和整理17:向量空间的基,自然基,基变换等(未完成)

目录 3 向量空间的基&#xff1a;矩阵的基础/轴 3.1 从颜色RGB说起 3.2 附属知识 3.3 什么样的向量可以做基&#xff1f; 3.4 基的分类 3.1.1 不同空间的基---向量组的数量可能不同 3.1.2 自然基 3.1.3 正交基 3.1.4 标准正交基 3.1.5 基和向量/矩阵 3.1.6 基变换 …

React笔记(八)Redux

一、安装和配置 React 官方并没有提供对应的状态机插件&#xff0c;因此&#xff0c;我们需要下载第三方的状态机插件 —— Redux。 1、下载Redux 在终端中定位到项目根目录&#xff0c;然后执行以下命令下载 Redux npm i redux 2、创建配置文件 在 React 中&#xff0c;…