2019年58同城笔试题

原创 2018年04月17日 20:40:58

题目1.输入一个字符串,输入整数n,找出长度为n的相同字符构成的子串。

例如:输入:
字符串“abbbccccddeeffffaaaddzzz”,整数3
输出:
(1,3,bbb)
(16,18,aaa)

(21,23,zzz)

基本思路:该题使用两个指针,i指向下标为0处,j指向下标为1处,如果i 指向的字符与j指向的字符相同,那么将将j向后挪动一位,并将计数器加一,重复该操作直到i 和j 指向的字符不同为止,此时如果count值为输入的长度n,那么就打印出从下标i到下标 j-1的字符。然后将i的值赋给j,j=i+1,重复上面的操作。

代码实现:

public class Main
{
	public static void main(String[] args)
	{
		int n = 3;
		String str = "abbbccccddeeffffaaaddzzz";
		int i = 0;
		int j = 1;
		int count;
		char[] ch = str.toCharArray();
		int N = ch.length - 1;
		while(j<=N&&i<=N)
		{
			count = 1;
			while(j<=N&&ch[i]==ch[j])
			{
				count++;
				j++;
				
			}
			if(count==n)
			{
				System.out.print("("+i+","+(j-1)+",");
				for(int k=0;k<count;k++)
				{
					System.out.print(ch[i]);
				}
				System.out.print(")");
				System.out.println();
			}
			if(count>n)
			{
				i = j;
				j = i + 1;
			}
			else
			{
				i = i+ 1;
				j = i + 1;
			}
		}
	}
}
题目2:计算数组最大的连续子序列的和

如:{14,-2,4,-3,5,7,2,-39,22},和最大子序列是{14,-2,4,-3,5,7,2},返回27

思路一:暴力求解(时间复杂度n^2):

列举出所有的自序列的组合,将他们相加:

[14],[14,-2],[14,-2,4],[14,-2,4,3]..........

[-2],[-2,4],[-2,4,-3]..........

........

[22]

代码实现:

public class Main
{
	public static void main(String[] args)
	{
		int[] a = {14,-2,4,-3,5,7,2,-39,22};
		int N = a.length;
		int Max = Integer.MIN_VALUE;		//取最小整数
		int result;

		for(int i=0;i<N;i++)
		{
			result = 0;
			for(int j=i;j<N;j++)
			{
				result += a[j];
				Max = Math.max(Max, result);
			}
		}
		System.out.println("最大值为:"+Max);
	}
}

思路二:动态规划

思路:求n个数的数组的最大字段和,转为分别求以第1个、第2个........第n个数字结尾的最大字段和,再找出n个结果中最大的。

代码实现:

//数组的所有连续子段的最大和
public class Main
{
	public static void main(String[] args)
	{
		int[] a = {14,-2,4,-3,5,7,2,-39,22};
		maxSum(a,a.length);		
	}
	public static void maxSum(int[] a,int n)
	{
		int[] dp = new int[a.length];
		dp[0] = a[0];
		for(int i=1;i<n;i++)
		{
			dp[i] = Math.max(dp[i-1]+a[i], a[i]); 
		}
		
		//System.out.println(Arrays.toString(dp));
		//取出dp数组中的最大值
		int max = Integer.MIN_VALUE;
		for(int i=0;i<dp.length;i++)
		{
			if(dp[i]>max)
				max = dp[i];
		}
		System.out.println(max);
	}
}

58同城, 2017春招后端编程题

1.字符串转数字太简单了. 略.2.考察异或2.1 第一问 数组中有若干个整数, 只有一个出现了一次, 其他数字都出现了两次, 找出这个数字. 相同的数字, 异或结果是 0; 0 异或一个数字, ...
  • chuchus
  • chuchus
  • 2017-03-24 14:40:33
  • 391

2016年58同城赶集笔试题

首先声明一下,这份题并没有好好作答,只是无意间收到通知去笔试。。也没想着去北京。 1钟表面一共是60小格 分针的速度每分钟1格 时针的速度=5/60=1/12格 速度差=1-1...
  • uniquewonderq
  • uniquewonderq
  • 2015-09-23 23:53:27
  • 5405

网易2019年实习生招聘笔试题

第一题:牛牛找工作题目:为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛...
  • nijijiao8418
  • nijijiao8418
  • 2018-04-02 14:53:27
  • 90

2017年58集团前端校招面试题

58集团前端面试题
  • datou0529
  • datou0529
  • 2016-09-14 23:17:52
  • 4961

记录一下网易2019届实习笔试题

准备仓促,先记坑,再填坑.我申请的是计算机视觉(深度学习)岗位,一直认为自己的知识水平还可以,真正笔试时,才发现会的太少.首先从题目本身出发,都是和深度相关的题目,每道题都似曾相识,但又表达不出.每道...
  • hjxu2016
  • hjxu2016
  • 2018-03-28 10:08:20
  • 142

58同城软件测试工程师笔试题

  • 2014年10月19日 16:50
  • 8.14MB
  • 下载

华为2019实习生招聘软件编程题

华为2019实习生招聘软件编程题题目这里就不再重复,当时只ac了两题,第三题是实现一个高精度乘法,由于调试的时候,一直有个bug没搞出来,后来才发现是模拟手算的一个双重循环中 for(int i=0;...
  • Awille
  • Awille
  • 2018-03-22 14:58:47
  • 873

携程大数据分析2019实习生笔试

3.29晚做的。小题考了很多机器学习和深度学习。两道问答题1,已知丈夫为双眼皮,妻子为单眼皮,双眼皮基因对单眼皮为显性。假设在人群中双眼皮基因AA,Aa的概率分别为0.4,0.6。他们的孩子是双眼皮的...
  • u013129109
  • u013129109
  • 2018-03-30 09:40:33
  • 208

携程2019实习生后台开发笔试题 总结

题目1:给定一个整数的数组,要求将数组中的所有的0元素移动到数组的最后,其他的元素保持原来的顺序。要求:空间复杂度不能超过O(1)example:给定数组[0,2,0,7]转换后应为[2,7,0,0]...
  • duoduo18up
  • duoduo18up
  • 2018-03-31 11:57:36
  • 159

58同城2015校招计算机笔试题

  • 2014年12月01日 16:04
  • 339KB
  • 下载
收藏助手
不良信息举报
您举报文章:2019年58同城笔试题
举报原因:
原因补充:

(最多只允许输入30个字)