网易2018内推笔试题解析(交错01串)
来源:互联网 发布:insert多条数据,错误 编辑:程序博客网 时间:2024/05/28 11:30
12号做了网易的笔试题,像记录分享一下
题目:
如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: "1","10101","0101010"都是交错01串。
小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。
输入描述:
输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含'0'和'1'。
输出描述:
如输出一个整数,表示最长的满足要求的子串长度。
我用了两种方法实现,java和js,可能思路差不多。
一、java实现
import java.util.Scanner;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in);String string=scanner.next();char str[]=string.toCharArray();System.out.println(MaxNum(str)); } public static Object MaxNum(char cha[]){int MaxNum=1;int Maxnumb=1;int com[];List items=new ArrayList();items.add(1);for (int i = 1; i < cha.length; i++) {if(cha[i]==cha[i-1]){MaxNum=1;if(Maxnumb!=1){items.add(Maxnumb);}Maxnumb=1;}else{Maxnumb=Maxnumb+1;}} items.add(Maxnumb);Collections.sort(items); int a=items.size();return items.get(a-1); }}
二、js实现
基本思路:
将输入的字符串传入数组,然后设置一个变量MaxLength,默认长度为1(因为在这个题中,单独的'0'和'1'都算一个01串),然后遍历数组,判断i和i-1,如果相等,则排除,则将循环中的MaxLength添加到数组里面,然后重置为1。在第一个for循环结束后,最后还需要将MaxLength放入数组,然后对数组进行循环,取出最大值,返回即可。
while(line=readline()){//牛客网默认的代码模式 var str=[];//定义两个数组,一个用来存输入的字符串,一个用来存遍历的长度var cha=[];str=line;var MaxLength=1;for(var i=1;i<str.length;i++){if(str[i]==str[i-1]){if(MaxLength!=1){cha.push(MaxLength);MaxLength=1;}}else if(str[i]!=str[i-1]){MaxLength=MaxLength+1;}}cha.push(MaxLength);var num=cha[0];for(var i = 1, length1 = cha.length; i < length1; i++){if(num<cha[i]){num=cha[i];}} print(num)}程序可能写的不是很好,有错误的话希望指正哦。
阅读全文
1 0
- 网易2018内推笔试题解析(交错01串)
- 2018网易内推笔试-交错01串(python)
- 网易2018内推_算法工程师_笔试题_交错01串_C/C++
- 网易2017内推 [编程题] 交错01串@Java
- 网易2018校招内推笔试-交错01串
- 网易内推笔试合集(二)题解
- 网易笔试:交错01串
- 2018网易内推笔试
- 2018网易秋招内推笔试题——交错01串
- 2018网易内推笔试编程题(一)
- 2018网易内推笔试编程题(二)
- 2018网易内推笔试-等差数列(python)
- 网易内推笔试题
- 2018校招网易笔试——最长01交错子串
- 交错01串-网易2018校招内推
- 2018网易内推笔试-彩色的砖块(python)
- 2018网易内推笔试-操作序列(python)
- 网易2018内推笔试题_操作序列_C++
- HTML5 和移动端 WebView 缓存机制解析与实战
- 二叉树的基本操作c++
- ZigBee CC2530 Z-Stack 21 组播通信
- 进程通信之信号量
- CFM入门
- 网易2018内推笔试题解析(交错01串)
- HashSet的重写comparbleble和compartor比较方法
- 计算机是怎么做乘法运算的
- 观央视新闻调查《我是黑客》的一些感悟
- SCU
- hdu 1069
- Android进阶之创建快捷方式
- lucene Query搜索
- 事件委托