百词斩笔试

基本都是原题,一题是求字符串最大数字 一题是summary range,加一句判断是不是小于2, 一题是全排列
全部评论
//第一题  #include <stdio.h> #include<iostream> #include<ctime> #include<cstdlib> #include<cmath> using namespace std; int main() {     string s;     int ans(0),x;     cin>>s;     for(int i=0;i<s.length();i++)     {         if(isalpha(s[i])==0)         {            x=s[i]-'0';            while(isalpha(s[++i])==0 && i<s.length())                 x=x*10+s[i]-'0';            if(x>ans)ans=x;         }     }     cout<<ans;   return 0; }  //第二题  #include<iostream> #include<string> #include<algorithm> using namespace std; int z[10]; int main() {     int n;     cin>>n;     for(int i=0;i<n;i++){         cin>>z[i];     }     for(int i=0;i<n;){         if(z[i+1]-1==z[i]){             int cc=i;             int num=0;             while(z[i+1]-1==z[i]){                 num++;                 i++;             }             if(num>=2){                 if(cc!=0){                     cout<<',';                              }                 cout<<z[cc]<<'-'<<z[i];                 i++;                 }             else {                 i=cc;                 if(cc!=0){                     cout<<',';                 }                 cout<<z[i];                 i++;                              }                      }         else {             if(i!=0){                     cout<<',';                 }                 cout<<z[i];                 i++;         }     }     return 0; }  //第三题  #include <stdio.h> #include<iostream> #include<ctime> #include<cstdlib> #include<cmath> #include<algorithm> using namespace std; int main() {     int n;     int a[110];     cin>>n;     for(int i=0;i<n;i++)         cin>>a[i];     for(int i=0;i<n;i++)             cout<<a[i];     cout<<endl;     while(next_permutation(a,a+n))     {         for(int i=0;i<n;i++)             cout<<a[i];         cout<<endl;     }   return 0; }
点赞 回复 分享
发布于 2018-03-25 13:46
第三题 public class test8 {     public static void main(String[] args) {         // TODO Auto-generated method stub         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int[] array = new int[n];         for (int i = 0; i < n; i++) {             array[i] = scanner.nextInt();         }                      List<List<Integer>> list = new ArrayList<>();         backtrack(list, new ArrayList<>(), array);                  for (List<Integer> list2 : list) {             for (Integer integer: list2) {                 System.out.print(integer);             }             System.out.println();         }        }         public static void backtrack(List<List<Integer>> list, List<Integer> templist, int[] nums){             if (templist.size() == nums.length) {                 list.add(new ArrayList<>(templist));// 符合条件的加入进去             }             else {                 for (int i = 0; i < nums.length; i++) {                     if (templist.contains(nums[i])){ // 这个判断是否包含重复 也是及其精妙啊                         continue;                     }                     templist.add(nums[i]);                     backtrack(list, templist, nums);                     templist.remove(templist.size() - 1);                 }             }         } } 第一题 public class test6 {     public static void main(String[] args) {         // TODO Auto-generated method stub         Scanner scanner = new Scanner(System.in);         String string = scanner.nextLine();                  Set<String> set = new HashSet<>();         char[] chars = string.toCharArray();         int l = 0;         int r = 0;         for (int i = 0; i < string.length(); i++) {             while (chars[r] < '0' || chars[r] > '9') {                 l++;                 r++;             }             StringBuilder stringBuilder = new StringBuilder();             while (chars[r] >= '0' && chars[r] <= '9') {                 stringBuilder.append(chars[r++]);                 if (r >= string.length()) {                     break;                 }             }             set.add(stringBuilder.toString());             i = r - 1;         }         int res = Integer.MIN_VALUE;         for (String s : set) {             res = Math.max(res, Integer.valueOf(s));         }         System.out.println(res);     } } 第二题 ,有点bug, 只通过了 16%, 没时间调了, public class test7 {     public static void main(String[] args) {         // TODO Auto-generated method stub         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int[] array = new int[n];         for (int i = 0; i < n; i++) {             array[i] = scanner.nextInt();         }         if (array.length == 1) {             System.out.println(array[0]);         }         else if (array.length == 2) {             System.out.println(array[0] + "," + array[1]);         }         else {             StringBuilder stringBuilder = new StringBuilder();             for (int i =0; i < array.length; i++) {                 StringBuilder temp = new StringBuilder();                 int start = array[i];                 temp.append(start + "");                 if ((start + 1) < array.length && array[start + 1] - array[start] > 1) {                     stringBuilder.append(array[start] + ",");                 }                 else {                     int temprr = Backing(temp, array, start + 1);                     if (temprr >= 3) {                         String ssss = array[start] + "-" + array[start + temprr - 1] + ",";                         stringBuilder.append(ssss);                     }                     else {                         stringBuilder.append(array[start] + ",");                     }                 }                                  }             System.out.println(stringBuilder.toString());         }     }     public static int Backing(StringBuilder stringBuilder, int[] array, int start) {         stringBuilder.append(array[start] + "");         if ((start + 1) < array.length && array[start + 1] - array[start] > 1) {             return stringBuilder.length();         }         return Backing(stringBuilder, array, start + 1);     } }
点赞 回复 分享
发布于 2018-03-25 12:07
import java.util.*; import java.util.*; public class Main{ public static void main(String args[]) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int n=in.nextInt(); int arr[]=new int[n]; for(int i=0;i<n;i++){ arr[i]=in.nextInt(); } ArrayList<ArrayList<Integer>> list=new ArrayList<>(); ArrayList<Integer> Temp=new ArrayList<>(); boolean vis[]=new boolean[n]; get(arr,n,Temp,list,vis); for(int i=0;i<list.size();i++){ System.out.println(trand(list.get(i))); } } } public static String trand(ArrayList<Integer> Temp){ String s=""; for (int i=0;i<Temp.size();i++){ s+=Temp.get(i); } return s; } public static void get(int arr[],int n,ArrayList<Integer> Temp,ArrayList<ArrayList<Integer>> list, boolean[] vis){ if(Temp.size()==n){ list.add(new ArrayList(Temp)); return; } for (int i=0;i<n;i++){ if(vis[i]){ continue; }else { vis[i]=true; Temp.add(arr[i]); get(arr,n,Temp,list,vis); Temp.remove(Temp.size()-1); vis[i]=false; } } } } 第三题
点赞 回复 分享
发布于 2018-03-25 12:11
我用js写的 第一题 function findMax(val) {   const arr = val.split('');   const reg = /\d+/g;   const max = Math.max.apply(Math, val.match(reg));   console.log(max); } 第三题 function main() {   for (let i = 0; i < size; i++) {     const b = a.concat();     b.splice(b.indexOf(a[i]), 1);     pailie(a[i], b);   } } function pailie(head, tail) {   for (let i = 0; i < tail.length; i++) {     if (tail.length === 1) {       console.log(head +''+ tail[0]);     } else {       const b = tail.concat();       b.splice(b.indexOf(tail[i]), 1);       pailie(head+''+tail[i], b);     }   } } 第二题通过33%,惨的不谈
点赞 回复 分享
发布于 2018-03-25 12:18
弱弱的问一句,什么的原题
点赞 回复 分享
发布于 2018-03-25 12:02
是哪的原题?我感觉做的不好,,大神加个好友吧...
点赞 回复 分享
发布于 2018-03-25 12:02
没来得及做,就做了1和3,2刚写了个输入。。。。
点赞 回复 分享
发布于 2018-03-25 12:03
第三题刚刚写完,一看时间过了。*** 还没提交
点赞 回复 分享
发布于 2018-03-25 12:04
第二题只过了83%,也不知道哪里错了。
点赞 回复 分享
发布于 2018-03-25 12:07
第二题只过了50%
点赞 回复 分享
发布于 2018-03-25 12:09
每道题的 分数是不是都是一样的啊 ?
点赞 回复 分享
发布于 2018-03-25 12:11
其他两题已经被覆盖了,主要考试懒得写那些Scanner和static ps:@牛妹 以后考试能不能帮我们把输入写好啊,真的很浪费时间。 第二题: 你们参考summary range 吧。。加一个判断是否两数字相差大于3. 第一题: 就是暴力
点赞 回复 分享
发布于 2018-03-25 12:15
实习生吗?
点赞 回复 分享
发布于 2018-03-25 13:57
百词斩没有招实习生吧 = =。。。
点赞 回复 分享
发布于 2018-03-25 14:14
package com.sort; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Test1 {     public static void main(String[] args) {          @SuppressWarnings("resource")         Scanner scan = new Scanner(System.in);         String str = scan.nextLine();         ArrayList arr = new ArrayList<>();         for(int i = 0 ; i < str.length() ; i ++){             if(!Character.isDigit(str.charAt(i))){                 String s = str.replace(str.charAt(i), ' ');                 str = s;             }         }         String[] ss = str.split(" ");         for(String sd : ss){             if(sd!=null){                 arr.add(sd);             }         }         Collections.sort(arr);         System.out.println(arr.get(arr.size()-1));     } } 第一题
点赞 回复 分享
发布于 2018-03-25 14:31
- -你们笔试哪里做的
点赞 回复 分享
发布于 2018-03-25 14:48
这位大神的代码是正确的,亲测,感谢
点赞 回复 分享
发布于 2018-05-26 15:21
你好,想问下面的是什么岗位
点赞 回复 分享
发布于 2018-09-06 15:14

相关推荐

点赞 评论 收藏
分享
点赞 11 评论
分享
牛客网
牛客企业服务