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. nodejs 解决跨域

    1.失败 app.all('*', function (req, res, next) { res.header("Access-Control-Allow-Origin", &q ...

  2. maven创建项目,打包出可执行Jar

    官网参考 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html 配置多种打包方式 这个例子也不错 https://bl ...

  3. js总结001

    JSTL 表达式与 EL 语言      http://leon906998248.iteye.com/blog/1502569 2   jquery中$each()方法的使用指南     http: ...

  4. C#调用C++

    c++ extern "C" __declspec(dllexport) char* WINAPI base64_decode( char *data,char base[]) { ...

  5. httpClient 深入浅出~

    本文偏重使用,简单讲述httpclient,其实在网络编程中,基于java的实现几乎都是包装了socket的通信,然后来模拟各种各样的协议:httpclient其实就是模拟浏览器发起想服务器端的请求, ...

  6. Spring3.0学习1.2(使用annotation)

    使用annotation 首先 xml文件更改  新加xslt <?xml version="1.0" encoding="UTF-8"?> < ...

  7. 关于三层(dao,serviece,servlet)

    在登陆校验中, dao:返回的是resultset 对象,就是  ps.executeQuery(需要强化的是jdbc的具体的流程) 其中的数据库连接时可以自己写 可以通过工厂类 可以通过数据库的连接 ...

  8. 3DMAX 批量 场景 对象 导出 .X格式 脚本

    一.首先你需要下载一个 Total Commader文件管理软件.利用这个软件你可以收集文件夹下包含子文件夹下的max文件(或完整路径)打开TotalCMD后使用查找文件:(如图红框中的操作)1. 2 ...

  9. tensorflow的save和restore

    使用tensorflow中的save和restore可以对模型进行保存和恢复 import tensorflow as tf v1 = tf.Variable(tf.random_normal([1, ...

  10. base64 压缩图片

    //图片处理 afterimg(err, photos) { var _this = this; if(err && err != null && err != '') ...