科大讯飞:Java开发
题目:输入一个正整数,将其二进制第二位0改为1。例如:10=(1010)2,返回14=(1110)2。
代码:
/*** 将num二进制中第二位0改为1* @param num [1,10^9]* @return*/public static int changeNumber (int num) {// 找到num第二个0int i=num;int sum=0;int twice=0;while(i != 0 && twice<2) {if(i%2 == 0) {// 当前有一位0twice++;}sum++;// 无符号右移一位i >>>= 1;}while(twice != 2) {sum++;twice++;}sum--;return num | 1<<sum;}
美团:后端开发
题目:小美给小团一个n个数字构成的数字序列,问小团能不能经过重新排列后形成1到n的排列。
举例:
小美给小团[2, 1, 3],则可以经过重新排列后构成[1, 2, 3],这是可行的。
小美给小团[4, 4, 1, 3],则无法经过重新排列后构成[1, 2, 3, 4],这是不可行的。
为了防止小团靠运气碰对答案,小美会进行多组询问。
输入:
2
3
2 1 3
4
4 4 1 3
输出:
Yes
No
代码:
/*** 第一行是一个数T,表示有T组数据。* 对于每组数据:* 第一行一个数字n表示小美给出的序列由n个数字构成。* 接下来一行n个空格隔开的正整数。*/
public static void main(String[] args) {Scanner sc=new Scanner(System.in);// 总共有sum组数据int Int();while(sum-- > 0) {// 当前组的数组长度为lengthint Int();int[] arr=new int[length];for(int i=0;i<length;i++) {arr[i]=sc.nextInt();}boolean res = isSequence(arr);if(res) {System.out.println("Yes");} else {System.out.println("No");}}
}public static boolean isSequence(int[] arr) {Arrays.sort(arr);if(arr[0] != 1 || arr[arr.length-1] != arr.length) {return false;}for(int i=1;i<arr.length;i++) {if(arr[i] != arr[i-1] + 1) {return false;}}return true;
}
题目:小美现在有一个字符串,小美现在想知道能不能通过在字符串的尾端增加若干字符使得整个字符串变成一个回文串。
回文串的定义:若一个字符串,对他正序遍历和倒序遍历得到的结果是完全一致的,就称它是一个回文串。例如 abcba 就是一个回文串,因为无论正序还是倒序都是一样的。
对于字符串 abaaca,显然在该字符串末尾继续补上三个字符 aba 就可以构成 abaacaaba,就可以把原字符串变成回
本文发布于:2024-02-02 12:50:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170684943143915.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |