创新工场笔试最后两道题

  前几天创新工场来学校开宣讲会招聘,至少有1100多人参加了笔试, 招的人又那么少,简直就是充当炮灰去了~ 

  记住了最后两道题目,如下

  

第一题:字符串去重,要求不能开辟新空间用来复制原字符串,比如字符串为"abddscbd",去重复后就是"abdsc"

  粘一点自己写的代码,写的比较复杂凌乱,新手~~

 

 1 /**
 2      * 判断一个字符在字符串中是否重复了两次以上
 3      * @return 重复了两次或两次以上就返回true,否则返回false
 4      */
 5     private static boolean tooMany(String str, char ch) {
 6         int len = str.length();
 7         int count = 0;
 8         for (int i = 0; i < len; i++) {
 9             if (str.charAt(i) == ch) {
10                 count++;
11             }
12         }
13         return (count > 1) ? true : false;
14     }
15     
16     /**
17      * 判断字符串中是否有所含的字符
18      */
19     private static boolean contain(String str, char ch) {
20         boolean flag = false;
21         for (int i = 0; i < str.length(); i++) {
22             if (str.charAt(i) == ch)
23                 flag = true;
24         }
25         return flag;
26     }
27 
28     public static String toLessStr(String str) {
29         int i = 0;
30         while ((str.length() - i) > 0) {
31             char ch = str.charAt(i);
32             if (tooMany(str, ch) && (i >= 1)) {
33                 if (contain(str.substring(0, i), str.charAt(i))) {
34                     str = str.substring(0, i) + str.substring(i + 1);
35                 } else {
36                     i++;
37                 }
38             } else {
39                 i++;
40             }
41         }
42         return str;
43     }
44 
45     public static void main(String[] args) {
46         // TODO Auto-generated method stub
47         System.out.println(toLessStr("aacddsdae"));    //输出 acdse
48     }

第二题:求逆序对个数,在一个数组a里,如果i < j,a[i]>a[j],那么<a[i],a[j]>称为一个逆序对,如3,5,1,2 一共有<3,1><3,2><5,1><5,2>四个逆序对

  

 1 /**
 2      * 数组的反序的个数
 3      * @return 返回个数
 4      */
 5     static int ArrayTest(int[] arr){
 6         if(arr.length<=1)
 7             throw new IllegalArgumentException("数组小于零");
 8         int len=arr.length;
 9         int count=0;
10         for(int i=0;i<len-1;i++){
11             for(int j=i+1;j<len;j++){
12                 if(arr[i]>arr[j]){
13                     count++;
14                 }
15             }
16         }
17         return count;
18     }
19     public static void main(String[] args) {
20         // TODO Auto-generated method stub
21         int[] a={5,2,3,4,9,1,6};
22         System.out.println(ArrayTest(a));    //输出 9
23     }

 

 

转载于:https://www.cnblogs.com/Lowp/archive/2012/09/21/2696825.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值