面试中常用到机试题

来源:互联网 发布:阿里云浏览器官网 编辑:程序博客网 时间:2024/06/05 21:59

题目一:

连续重复的字符串进行字符串的压缩操作

如wwweerqqqq输出则为3w2e1r4q

public class Text3 {private static String str;public static void readIn(){Scanner in = new Scanner(System.in);  str = in.next();  System.out.print(compressStr(str)); }   //对连续重复的字符串进行字符串的压缩操作public static StringBuffer compressStr(String str){StringBuffer sb = new StringBuffer();int count;for(int i=0;i<str.length();i=i+count){char temp = str.charAt(i);count = 1;for(int j=i+1;j<str.length();j++){if(str.charAt(j)==temp){count++;}else{break;}}if(count!=1){sb.append(count);}sb.append(temp);}return sb;}public static void main(String[] args) {/*System.out.print(Text3.compressStr("xxxyyyyzzxx"));System.out.print(Text3.compressStr("xyzewrs"));*/Text3.readIn();}}

题目2

比如43数字可以生成43+4+3=50

我们就说d(43)=50,50是由43生成的,求出100范围内不能被按照这种模式生成的数字有哪些,这个结果可以验证一下

package TEXT;import Test.Test10;public class Text1 { //有没有一种是求解差集的思想在里面//定义一个函数,判断这个数是否满足a的定义,暂定为在100的范围以内public static boolean judge(int m){int a = m/10;int b = m%10;/*System.out.print(a);System.out.print(b);*/if(!IsSame(m)){for(int j=(a-1)*10;j<=a*10;j++){int sum = j+j/10+j%10;if(sum==m){return true;}}}else if(IsSame(m)){for(int j=(a-2)*10;j<=(a+1)*10;j++){int sum = j+j/10+j%10;if(sum==m){return true;}}}return false;}public static boolean IsSame(int m){int a = m/10%2;int b = m%10%2;return a==b?true:false;}public static void print(){for(int i=1;i<100;i++){if(!judge(i)){System.out.print(i);System.out.println();}}}public static void main(String[] args) {// TODO Auto-generated method stub        /*System.out.print(Text1.judge(55));*/Text1.print();}}
题目3:约瑟夫环问题

已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列

package TEXT;public class Text2 {//约瑟夫环      public static void Josephus(int N, int M)      {          int f[] = new int[100];          f[1] = 0;  //说明默认是从第一数字开始进行的        for(int i = 2; i <= N; i++)          {              f[i] = (f[i - 1] + M) % i;          }          System.out.print((f[N]+1)+" ");      }  public static void main(String[] args) {// TODO Auto-generated method stub        Text2.Josephus(10, 8);}}


0 0
原创粉丝点击