背景

这几天正好是各大互联网公司校招笔试的时间,于是陪着同学一起做了一下京东的笔试题。其中单选和不定项选择题涵盖的范围还是比较广的,包括子网掩码的计算、linux相关知识点、C++知识点、设计模式等。编程题有两道,其实难度不大,现在将第一题以及我的答案记录一下供大家参考。

题目描述:

给定一个字符串s,请计算输出含有连续两个s作为子串的最短字符串。注意两个s可能有重叠部分。例如,”ababa”含有两个aba。

输入描述:

输入包括一个字符串s,字符串长度length(1<length1<50),s中每个字符都是小写字母。

输出描述:

输出一个字符串,即含有连续两个s作为子串的最短字符串。

输入:

abracadabra

输出:

abracadabracadabra

思路:

题目中说是包含两个s作为子串,而且可以有重叠部分。所以说,如果没有重叠的部分,最后输出的便是最长的字符串,即两个s拼接在一起。如果有重叠部分,也是仅限于s的前n位和s的后n位是一样的才可以。因此,我们可以用最简单的方式,把两个s当成s1和s2。从s1的第2(n)位往后开始和s2的第一位往后的每一个字符进行对比,如果直到s1的结尾都是一致的,则最后输出的字符便是s1的前1(n-1)个字符拼接s2。如果有不一致的,则从s1的第3(n+1)位开始重复比对,以此类推。

代码实现:

public class JDTest {public static void main(String[] args) {Scanner ss = new Scanner(System.in);String s = ss.next();System.out.println(getString(s));}public static String getString(String s) {char[] charArray = s.toCharArray();//将字符串s转为char数组for (int i = 1; i < charArray.length; i++) {//每次从s1的第i位与s2的第0位开始比较int j = 0;int tempi = i;//如果相等则继续比较s1和s2的下一位字符while (charArray[j] == charArray[tempi]) {//如果到了s1的最后一位都是相等的,则返回最短字符串if (tempi == charArray.length - 1) {String result1 = s.substring(0, i);return result1 + s;}j++;tempi++;}}//如果没有重复,则返回两个s拼接的字符串return s + s;}
}

当然,如果有更好的解决方法,希望各位读者可以补充交流。

最后庆祝我的独立域名博客正式上线啦

本篇文章也会在我的独立域名博客异思园同步发布,当然,在那个博客上也会发布一些和技术无关的瞎扯胡扯的文章啦,毕竟在CSDN博客上,还是主要写一些技术性的文章嘛(严肃脸)

京东2018校招研发笔试题记录相关推荐

  1. 58同城2018校招前端笔试题总结

    1. 用js实现一个随机打乱数组顺序的函数,要求可以设定数组中任意1个字符的位置不变,其他位置的元素位置随机变化 思路:函数接受两个参数:第一个参数是原数组,第二个参数是指定的位置不变的元素的下标.当 ...

  2. 三七互娱2018校招前端笔试题

    1.正则表达式考察题 1)格式为: 2016-12-12类型的日期格式校验正则表达式: 2)字符串解析:将格式诸如"[img:(src...)]"的字符串解析替换为"&l ...

  3. 蘑菇街2015校招 Java研发笔试题 详解,2015java

    蘑菇街2015校招 Java研发笔试题 详解,2015java 1. 对进程和线程描述正确的是( ) A.  父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间. B.  改变 ...

  4. 网易互娱2020校招游戏研发笔试题

    网易互娱游戏研发笔试题 第一题:判断一个数的二进制是否为回文串(AC) 方法一:存成数组之后比较 #include<iostream> #include<algorithm> ...

  5. 数据分析真题日刷 | 网易2018实习生招聘笔试题-数据分析实习生

    上周开始实习,博客更新就缓下来了.这是十天前做的套题了,现在拾起来把它再整理整理. 网易数据分析实习生的笔试题,和校招的题目还是有部分重复的,不过难度也不小. 今日真题 网易2018实习生招聘笔试题- ...

  6. 网易2018实习生招聘笔试题-JAVA开发实习生

    网易2018实习生招聘笔试题-JAVA开发实习生 如何从有数字规律的网址抓取网页并保存在当前目录?假设网址为 http://test/0.xml,其中这个数字可以递增到100. for(int i=0 ...

  7. 【牛客】网易2018实习生招聘笔试题——数据分析师实习生解析

    [牛客]网易2018实习生招聘笔试题--数据分析师实习生解析 * 选择题根据牛客网下方讨论整理,三道大题均为自己答案,欢迎大家讨论并给予指正. (https://www.nowcoder.com/te ...

  8. 猿辅导校招技术类笔试题

    猿辅导校招技术类笔试题 2019年 大巴车 这道题还挺简单的,题干也写了,数组按块翻转,块内保持不变 import java.util.*; public class Main {public sta ...

  9. 校招笔试C语言,校招c ++笔试题汇总

    ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题, 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后 ...

最新文章

  1. Luogu4926 倍杀测量者(二分答案+差分约束)
  2. 在 Linux 中如何禁止用户登录
  3. function module COM_PRODUCT_GETDETAIL_INTERNAL的内存分配问题
  4. 老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典
  5. python编程循环语句_循环语句—Python编程从入门到精通(5)
  6. 如何用python计算圆周率_使用MicroPython计算任意位数圆周率
  7. SWF也能修改!硕思闪客精灵专业Flash反编译工具
  8. WIN10完全卸载anaconda
  9. web 页面实现页面右下角弹窗功能
  10. MySQL查询不同年份母亲节_不同国家的母亲节发展故事
  11. cadence SPB17.4 - 更换已有原理图的标题栏
  12. 周伟焜挥别IBM 一个时代结束
  13. win10 系统 chrome内核浏览器 微软雅黑字体难看的解决方法
  14. python中元组常识,以及for 与 range 的用法!
  15. Excel 数据解析异常
  16. HDU 1846 Brave Game 巴士博弈
  17. 走出 scipy 的深坑:用 numpy 实现散列数据网格化
  18. 初识C语言——冒泡排序法
  19. Resistors in Parallel(Gym - 102028E 2018 ICPC 焦作E题 大数+规律C++版)
  20. 全球及中国用于癌症治疗的新型药物输送系统行业研究及十四五规划分析报告

热门文章

  1. 深度学习第一篇论文——半监督学习Mean Teacher 的学习
  2. 尤雨溪:Vue3.0 官宣彻底抛弃 IE 浏览器
  3. php去下划线,html怎么去除字体下划线?去除字体下划线方法
  4. Latex编辑数学符号和希腊字母的方法
  5. 10.10 fplot绘图指令
  6. solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)
  7. 大数据学习笔记(一)——大数据概述
  8. 使用IDAPython dump 内存
  9. 紫书《算法竞赛入门经典》
  10. python 画心_python画心性线