hardcode版本 估计只能过一个吧

import java.util.*;

public class NextServer {
Map<Integer, Integer> serverCount = new HashMap<Integer, Integer>();
//serverNum uses this, so defined by myself, according to his input,wrong
//int[] serverNums = {1,2,3};
int[] serverNums = {0}; int next_server_number(int[] serverNums) {
int len = serverNums.length;
Arrays.sort(serverNums);
for (int i = 0; i < serverNums.length; i++) {
if (!serverCount.containsKey(serverNums[i]))
serverCount.put(serverNums[i], 1);
else serverCount.put(serverNums[i], serverCount.get(serverNums[i]) + 1);
}
int max = serverNums[len - 1];
int result = max + 1;
for (int j = 1; j < max; j++) {
//System.out.println("j = " + j);
if (!serverCount.containsKey(j)) {
result = j;
//System.out.println("result = " + result);
break;
}
}
return result;
} String allocate(String hostType) {
int serverNum = next_server_number(serverNums);
if (serverCount.containsKey(serverNum) && serverCount.get(serverNum) > 1)
serverCount.put(serverNum, serverCount.get(serverNum) - 1);
if (serverCount.containsKey(serverNum) && serverCount.get(serverNum) == 1)
serverCount.remove(serverNum, 1);
//serverNum is wrong
return hostType + String.valueOf(serverNum);
} void deallocate(String hostType) {
int serverNum = Integer.valueOf(hostType.charAt(hostType.length() - 1));
if (!serverCount.containsKey(serverNum))
serverCount.put(serverNum, 1);
else serverCount.put(serverNum, serverCount.get(serverNum) + 1);
} public static void main(String args[]) {
NextServer ns = new NextServer();
String[] input = {"next 1 2 3","next","allocate banana","dealocate banana1"};
for (int i = 0; i < input.length; i++) {
if (input[i].contains("next")) {
if (input[i].length() == 4)
System.out.println(1);
else if (input[i].length() > 4) {
String[] temp = input[i].split("\\s+");
int[] numbers = new int[temp.length - 1];
for (int j = 1; j < temp.length; j++) {
numbers[j - 1] = Integer.valueOf(temp[j]);
}
System.out.println(ns.next_server_number(numbers));
}
}else if (input[i].contains("allocate")) {
System.out.println(ns.allocate(input[i]));
}else if (input[i].contains("deallocate")) {
ns.deallocate(input[i]);
}
}
}
}

有点不对,暂时现就这样吧:

import java.util.*;

public class NextServer {
Map<Integer, Integer> serverCount = new HashMap<Integer, Integer>();
static int[] serverNums; public static void main(String args[]) {
NextServer ns = new NextServer();
String[] input = {"next 1 2 3 4","next","allocate banana","dealocate banana1","allocate apple","allocate orange","allocate banana"};
for (int i = 0; i < input.length; i++) {
if (input[i].contains("next")) {
if (input[i].length() == 4) {
serverNums = new int[1];
serverNums[0] = 0;
System.out.println(ns.next_server_number(serverNums));
}
else if (input[i].length() > 4) {
String[] temp = input[i].split("\\s+");
serverNums = new int[temp.length - 1]; for (int j = 1; j < temp.length; j++) {
serverNums[j - 1] = Integer.valueOf(temp[j]);
}
System.out.println(ns.next_server_number(serverNums));
}
}else if (input[i].contains("allocate")) {
System.out.println(ns.allocate(input[i]));
}else if (input[i].contains("deallocate")) {
ns.deallocate(input[i]);
}
}
} int next_server_number(int[] serverNums) {
int len = serverNums.length;
Arrays.sort(serverNums);
for (int i = 0; i < serverNums.length; i++) {
if (!serverCount.containsKey(serverNums[i]))
serverCount.put(serverNums[i], 1);
else serverCount.put(serverNums[i], serverCount.get(serverNums[i]) + 1);
}
int max = serverNums[len - 1];
int result = max + 1;
if ((len - 1) == 1) return result = 1; for (int j = 1; j < max; j++) {
if (!serverCount.containsKey(j)) {
result = j;
break;
}
}
return result;
} String allocate(String hostType) {
int serverNum = next_server_number(serverNums);
if (serverCount.containsKey(serverNum) && serverCount.get(serverNum) > 1)
serverCount.put(serverNum, serverCount.get(serverNum) - 1);
if (serverCount.containsKey(serverNum) && serverCount.get(serverNum) == 1)
serverCount.remove(serverNum, 1);
return hostType + String.valueOf(serverNum);
} void deallocate(String hostType) {
int serverNum = Integer.valueOf(hostType.charAt(hostType.length() - 1));
if (!serverCount.containsKey(serverNum))
serverCount.put(serverNum, 1);
else serverCount.put(serverNum, serverCount.get(serverNum) + 1);
} }

最长字符串

怎么返回空格原来的形式啊,关键是不知道怎么找到位置

暴力解法:

package lendinghome;

public class longestPlr {
//ini
int lo, maxLength; public String longestPalindrome(String s) {
//cc: s.length() <
String[] words = s.split("\\s+");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < words.length; i++) {
sb.append(words[i]);
}
String compressedStr = sb.toString(); System.out.println("compressedStr = " + compressedStr);
if (s == "" || s.length() == 0 || s.length() == 1) return s; //for loop in two cases
for (int i = 0; i < compressedStr.length() - 1; i++) {
extendPalindrome(compressedStr, i, i);
extendPalindrome(compressedStr, i, i + 1);
} //return substring
String compressedResult = compressedStr.substring(lo, lo + maxLength);
System.out.println("compressedResult = " + compressedResult); String res = "";
//find the un compressed Result
for (int i = 0; i < s.length(); i++) {
for (int j = i; j < s.length(); j++) {
String temp = s.substring(i, j + 1);
String[] words1 = temp.split("\\s+");
StringBuilder sb1 = new StringBuilder();
//if (s.charAt(0) == ' ') sb1.append(' ');
for (int k = 0; k < words1.length; k++) {
sb1.append(words1[k]);
}
String compressedStr1 = sb1.toString();
//System.out.println("compressedStr1 = " + compressedStr1);
if (compressedStr1.equals(compressedResult)) {
res = temp;
//System.out.println("res = "+ res);
//System.out.println("res.length() = "+ res.length());
}
}
}
//System.out.println("res = ");
if (s.charAt(0) == ' ') res = ' ' + res;
return res;
} public void extendPalindrome(String s, int k, int j) {
//while loop
//k should always < s.length() since the index is from 0 to n -1
while (j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k)) {
j--;
k++;
} //renew the lo, maxLength;
if (k - 1 - j > maxLength) {
maxLength = k - 1 - j;
lo = j + 1;
}
} public static void main(String args[]) {
longestPlr lpr = new longestPlr();
//String testStr = "I went to my gym yesterday.";
//String testStr = " nurse srun ";
String testStr = " aibohphobia ";
System.out.println("testStr.length()" + testStr.length());
//String testStr = "abagcdcjkik";ok
System.out.println(lpr.longestPalindrome(testStr));
} }

lendinghome oa 准备的更多相关文章

  1. 标准产品+定制开发:专注打造企业OA、智慧政务云平台——山东森普软件,交付率最高的技术型软件公司

    一.公司简介山东森普信息技术有限公司(以下简称森普软件)是一家专门致力于移动互联网产品.企业管理软件定制开发的技术型企业.公司总部设在全国五大软件园之一的济南齐鲁软件园.森普SimPro是由Simpl ...

  2. 港真,到底应该选择OA还是BPM?

    越来越多企业意识到流程管理的重要性,但是,选择OA还是BPM,却让他们产生了选择困难症. 一方面,企业皆注重流程的高效运转,最好内外部的业务都能用一个系统来解决.所有流程一天就能上线什么的,那就更好啦 ...

  3. 从零到有——我的OA如何成长

    早前发文说要分享,马上进入了财务系统的开发,拖到现在,见笑了. 我在月初离职了,所以到处跑,找工作,想想南京.苏州.无锡(去玩的).杭州(路过).上海.珠海.深圳.广州.觉得找工作也差不多尾声了,就留 ...

  4. OA办公自动化系统源码

    最新extjs6富客户端,.net平台开发,sql server数据库,基础权限人员基础平台,可方便二次开发,使用EF为orm,autofac为ioc,Castle为基础的aop,实现常用OA系统功能 ...

  5. 【Java EE 学习 67 上】【OA项目练习】【JBPM工作流的使用】

    OA项目中有极大可能性使用到JBPM框架解决流程控制问题,比如请假流程.报销流程等等. JBPM:JBoss Business Process Management,翻译过来就是业务流程管理.实际上就 ...

  6. 去年做了什么?OA。

    假前一天下午被经理和PM叫上楼,首要一个问题是我去年干了啥,我大致支吾了几句描述了下,一时也说不出个大概.后面就是一片悠长的面谈,什么没达到期望,公司状况不好.......哦,这是KPI评价啊,剩下的 ...

  7. OA工作流规格--转

    工作流是整个OA系统的核心,也是BPM的核心,工作流到 底需要实现哪些功能,本文就此以用户的需求为蓝本进行阐述.工作流表面看起来是很简单的,无非是一个表单模板,一个流程定义,然后起草后根据设定的流程一 ...

  8. 专家解读:BPM与OA的区别

    演进历程 传统OA 模块化架构,仅能满足管理执行的刚性效率,系统的专业化程度有限. BPM 平台化架构,管理要求精细化程度高,系统更专业化,更注重整合. BPM SAAS 基于云架构,跨组织社交化,系 ...

  9. 整合了一个功能强大完善的OA系统源码,php全开源 界面漂亮美观

    整合了一个功能强大完善的OA系统源码,php全开源界面漂亮美观.需要的同学联系Q:930948049

随机推荐

  1. 爬虫--Scrapy-基于RedisSpider实现的分布式爬虫

    爬取网易新闻 需求:爬取的是基于文字的新闻数据(国内,国际,军事,航空) 先编写基于scrapycrawl 先创建工程 scrapy startproject 58Pro cd 58Pro 新建一个爬 ...

  2. 为什么MySQL不推荐使用子查询和join

    前言: 1.对于mysql,不推荐使用子查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做join,merge数据. 2.子 ...

  3. 如何创建Servlet

    //Servlet的生命周期:从Servlet被创建到Servlet被销毁的过程 //一次创建,到处服务 //一个Servlet只会有一个对象,服务所有的请求 /* * 1.实例化(使用构造方法创建对 ...

  4. Hibernate 再接触 多对多单向双向关联

    情景:一个老师可能有多个学生,一个学生也可能有多个老师 多对一单向: 例如老师知道自己教哪些学生,学生却不知道自己被哪些老师教 方法:使用第三张表 分别存两张表的id annotation Stude ...

  5. 100个常用的Linux命令——转载

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  6. 在windows上通过ssh远程链接linux服务器[转]

    本文分别转自 [http://jingyan.baidu.com/article/6d704a130de40e28db51cab5.html] [http://www.cnblogs.com/mliu ...

  7. 导出excel时设置单元格格式(避免类似0100的数字丢失前面的0)

    <td style="vnd.ms-excel.numberformat:@;"><s:property value="accountCode" ...

  8. Python基础学习Day6 is id == 区别,代码块,小数据池 ---->>编码

    一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...

  9. Ubuntu系统下手动释放内存

    有时候,像mongo这种,对内存只吃不吐的,我们要手动释放一下. drop_caches的详细文档如下:Writing to this will cause the kernel to drop cl ...

  10. kangle web配置phpmyadmin

    1. kangle安装参考:https://www.kangleweb.com/thread-6001-1-1.html 2. 安装mysql-5.7.22:http://www.cnblogs.co ...