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. echarts图表--统计图表

    echarts官网图表API:http://echarts.baidu.com/index.html

  2. CSS 的 ID 和 Class 有什么区别,如何正确使用它们。

    css只用class来写并有专门的class通用和私有模块命名, id具有唯一性且优先级太高只作为js操作dom的挂钩全部不添加样式, 如果使用jq或zepto的话,操作的class类名一般也不加样式 ...

  3. openresty(完整版)Lua拦截请求与响应信息日志收集及基于cjson和redis动态路径以及Prometheus监控(转)

    直接上文件 nginx.conf #运行用户和组,缺省为nobody,若改为别的用户和组,则需要先创建用户和组 #user wls81 wls; #开启进程数,一般与CPU核数等同 worker_pr ...

  4. Sql Server 中由数字转换为指定长度的字符串

    一个列的数据类型是 int ,从 1 开始自动增长,另一个列是字符串,现在想把 int 列转换成 九个字符,比如 1 转换后就是 000000001 ,添到字符串列,怎么实现呢? set @imaxU ...

  5. NAT与FULL NAT的区别

    LVS 当前应用主要采用 DR 和 NAT 模式,但这 2 种模式要求 RealServer 和 LVS在同一个 vlan中,导致部署成本过高:TUNNEL 模式虽然可以跨 vlan,但RealSer ...

  6. easyui中的几个问题

    easyui中的tree,采用url参数读取json,无法显示.有可能是vs的IIS不支持,$.ajax 原因待测试,有知道的朋友也可以贴代码,我解决的一个办法是 $(function () { $. ...

  7. 在iOS上使用ffmpeg播放视频

    国外靠谱的有这几个:1.Mooncatventures group https://github.com/mooncatventures-group 2.KxMoviePlayer (use Open ...

  8. 吴裕雄 python深度学习与实践(1)

    #coding = utf8 import threading,time count = 0 class MyThread(threading.Thread): def __init__(self,t ...

  9. 吴裕雄 python 机器学习-NBYS(2)

    import matplotlib import numpy as np import matplotlib.pyplot as plt n = 1000 xcord0 = [] ycord0 = [ ...

  10. MongoDB模糊查询,以及MongoDB模糊查询时带有括号的情况

    模糊查询 记录如下: { "_id" : ObjectId("5c3d486d24aa9a000526367b"), "name" : &q ...