最近在准备南大软工的复试,正好把自己做的上机真题的解贴出来,希望可以帮助到对这道题有疑惑的同学。因为给自己限制了时间,所有没有做优化,望见谅。

题目:给一个字符串 由RGB(红绿蓝)3种字母组成
1.找出串中最长的相同子串,输出字母以及所在位置,然后剔除(如有多个相同拿最左的子串)
2.将剩余部分按序连接,如果只有一个字母则结束游戏,否则返回第一步
注意每次输出的位置为原始串中的位置
例:
RBBGGR
B 2 3
G 4 5
R 1 6

下面直接上代码。

public class Solution {public void RGB(String S){    if(S.isEmpty())return ;int  [][]pos=new int [3][S.length()];//用三行来存储三个字母在预案字符串中出现的位置char []arr=S.toCharArray();int length=S.length();int p1=0,p2=0,p3=0;HashMap<Character,Integer> map=new HashMap<>();//定义一个map配合pos,value为对应行数。map.put('R',0);map.put('G',1);map.put('B', 2);for(int i=0;i<length;i++){if(arr[i]=='R')pos[0][p1++]=i+1;if(arr[i]=='G')pos[1][p2++]=i+1;if(arr[i]=='B')pos[2][p3++]=i+1;}while(length>0){ int start=0,end=0;//start为当前临时最长串的起点,end为当前轮最长串的终点int maxs=0;//每轮最长串的起点int max=1;//记录每轮的最大值for(int i=0;i<length-1;i++){    int count=1;if(arr[i]==arr[i+1]){start=i;while(i+1<length&&arr[i]==arr[i+1]){count++;i++;}if(count>max){max=count;end=i;maxs=start;}  }}System.out.print(arr[maxs]+" ");int p=0;int x=map.get(arr[maxs]);while(pos[x][p]!=0)//输出原始串中对应字符的位置{System.out.print(pos[x][p]+" ");p++;}System.out.println();for(p=maxs;p+end-maxs+1<length;p++)//将数组前移{arr[p]=arr[p+end-maxs+1];          }length=length-(end-maxs+1);}}
}

南大软件工程2019考研复试上机题+个人答案相关推荐

  1. 牛客网 -- 计算机历年考研复试上机题 -- 手机键盘

    题目描述 按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在"1"键上,输入a只需要按一次,输入c需要连续按三次. 如果连续两个字符不在同一个按键上,则可直接按,如: ...

  2. 牛客-计算机考研复试上机题-二次方程计算器

    这道题其实考察的是对字符串的处理. 显然我们要将方程化为ax2+bx+c=0的形式,因此可以找出式子中所有x2.x的系数以及c.但是题目的输入是一个完整的字符串,如果暴力遍历的话会很麻烦,于是就想到把 ...

  3. 深大复试题 计算机专业,2018深圳大学计算机技术考研复试真题

    考研初试的真题相关重要,10套考研模拟卷比不得考研真题一套.但因为许多信息无法通过官方的通知或网站公布出来,所以考生们想要了解真题内容只能通过刚经历过考研的同学,通过他们的回忆才能知晓.2019深圳大 ...

  4. 北航计算机2014复试上机题,北航计算机系考研复试上机真题及答

    北航计算机系考研复试上机真题及答 (29页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Kao400.com 出品 侵权必究 北京航空航 ...

  5. 北航计算机学院上机试题,北航计算机系考研复试上机真题及答.pdf

    北航计算机系考研复试上机真题及答.pdf K 出品 侵权必究 北京航空航天大学计算机系考研 复试 06-12 上机真题及答案 复试上机指导 1. 本真题只是供辅助作用,关键还是研友平时动手能力练 习和 ...

  6. 东华大学2020考研计算机复试准备上机题解析答案_基础篇 前言

    东华2020考研复试准备上机题解析答案_基础篇 前言 大家好,我是今年参加东华大学研究生入学考试的学生,前不久东华大学发布了关于复试上机的通知,还有题库供大家练习.我于是刷完了所有的题目,并且把题目和 ...

  7. 川大计算机考研学硕难调剂吗,2018年川大软件工程学硕考研心得

    2018年川大软件工程学硕考研心得 四川大学 发布于2019年9月22日 12:49 阅读数 11181 至于我的分数大家可以在川大官网查到,这里就不丢人了,软件工程学硕部分 . 首先,我来说说近两年 ...

  8. 计算机学硕考研复试编程能力,苏州大学计算机学硕专业考研复试真题

    苏州大学计算机相关的专业有计算机科学与技术和软件工程,这两个专业的分数线是不一样的.新东方在线整理了苏州大学计算机科学与技术专业学硕考研复试真题,以及复试经验分享. 英语一共4道题目: 第一题:用英语 ...

  9. 计算机专业考研复试上机算法学习

    计算机专业考研复试上机算法学习 这篇博客是博主在准备可能到来的线下上机复试基于王道机试指南的学习,将各道习题链接和代码记录下来,这篇博客权且当个记录. 文章目录 计算机专业考研复试上机算法学习 1.S ...

最新文章

  1. node.js(node.js+mongoose小案例)_实现简单的注册登录退出
  2. mysql更改可执行文件路径_Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径...
  3. C/C++之函数返回值为指针或者是引用时常见错误总结
  4. js重新渲染div_前端工程师必备:从浏览器的渲染到性能优化
  5. web实现数据交互的几种常见方式
  6. macos xampp mysql 命令_MAC系统XAMPP 中 MySQL命令行client配置使用
  7. java拼装树_java 数据拼装成树结构
  8. gnss观测质量检查软件下载_【速查】你可能下载了个假“北斗”!
  9. 理解Android的手势识别
  10. Atitit 数据库表文档生成解决方案
  11. 世界各国英文简写一览表
  12. 【软件测试】自动化测试到底怎么做(单元测试自动化,接口自动化,UI自动化)
  13. mysql误删数据快速恢复
  14. VS2019 编译 odb-mysql2.4详细过程
  15. 学习蓝桥杯之单片机1——软件环境搭建
  16. 离散数学西电版复习笔记——第一章:命题逻辑
  17. luogu4061 大吉大利,晚上吃鸡!
  18. Android 获取图片尺寸大小的方法
  19. 对称加密与非对称加密,以及RSA的原理
  20. 数据湖 数据孤岛 数据沼泽

热门文章

  1. 计算机怎么游戏教学,游戏教学法在小学计算机教学中的应用
  2. date-fns日期格式化_date-fns简介–轻量级JavaScript日期库
  3. html 爱心树,爱心树经典故事
  4. mysql+远程连接1130_Navicat for MySQL远程连接ERROR 1130
  5. aliyun centos7.5,安装mysql5.6数据库,navicat 连接数据库
  6. 难道做开发板的这的没有几家?
  7. 到底什么是线程?线程与进程有哪些区别?
  8. python中reversed是什么意思_python 内置函数 reversed()
  9. 码农BTS独立博客地址
  10. C语言写愤怒的小鸟(带有图片和背景音乐)