lendinghome oa 准备
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 准备的更多相关文章
- 标准产品+定制开发:专注打造企业OA、智慧政务云平台——山东森普软件,交付率最高的技术型软件公司
一.公司简介山东森普信息技术有限公司(以下简称森普软件)是一家专门致力于移动互联网产品.企业管理软件定制开发的技术型企业.公司总部设在全国五大软件园之一的济南齐鲁软件园.森普SimPro是由Simpl ...
- 港真,到底应该选择OA还是BPM?
越来越多企业意识到流程管理的重要性,但是,选择OA还是BPM,却让他们产生了选择困难症. 一方面,企业皆注重流程的高效运转,最好内外部的业务都能用一个系统来解决.所有流程一天就能上线什么的,那就更好啦 ...
- 从零到有——我的OA如何成长
早前发文说要分享,马上进入了财务系统的开发,拖到现在,见笑了. 我在月初离职了,所以到处跑,找工作,想想南京.苏州.无锡(去玩的).杭州(路过).上海.珠海.深圳.广州.觉得找工作也差不多尾声了,就留 ...
- OA办公自动化系统源码
最新extjs6富客户端,.net平台开发,sql server数据库,基础权限人员基础平台,可方便二次开发,使用EF为orm,autofac为ioc,Castle为基础的aop,实现常用OA系统功能 ...
- 【Java EE 学习 67 上】【OA项目练习】【JBPM工作流的使用】
OA项目中有极大可能性使用到JBPM框架解决流程控制问题,比如请假流程.报销流程等等. JBPM:JBoss Business Process Management,翻译过来就是业务流程管理.实际上就 ...
- 去年做了什么?OA。
假前一天下午被经理和PM叫上楼,首要一个问题是我去年干了啥,我大致支吾了几句描述了下,一时也说不出个大概.后面就是一片悠长的面谈,什么没达到期望,公司状况不好.......哦,这是KPI评价啊,剩下的 ...
- OA工作流规格--转
工作流是整个OA系统的核心,也是BPM的核心,工作流到 底需要实现哪些功能,本文就此以用户的需求为蓝本进行阐述.工作流表面看起来是很简单的,无非是一个表单模板,一个流程定义,然后起草后根据设定的流程一 ...
- 专家解读:BPM与OA的区别
演进历程 传统OA 模块化架构,仅能满足管理执行的刚性效率,系统的专业化程度有限. BPM 平台化架构,管理要求精细化程度高,系统更专业化,更注重整合. BPM SAAS 基于云架构,跨组织社交化,系 ...
- 整合了一个功能强大完善的OA系统源码,php全开源 界面漂亮美观
整合了一个功能强大完善的OA系统源码,php全开源界面漂亮美观.需要的同学联系Q:930948049
随机推荐
- maven的环境变量配置
一: 首先下载maven, 下载地址:http://maven.apache.org/download.html 打开这个连接:选择File下面的apache-maven-3.2.1-bin.zip链 ...
- SourceTree commit information window消失解决办法
https://answers.atlassian.com/questions/15282793/sourcetree-how-to-show-commit-information-panel 执行命 ...
- python catch socket timeout
python catch socket timeout import socket try: # do something. except socket.timeout as e: # socket ...
- TCP连接异常断开检测(转)
TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断 ...
- 今天折腾phantomjs+selenium的笔记
1.debian8里安装phantomjs的方法: 参照:http://www.cnblogs.com/lgh344902118/p/6369054.html a.去https://bitbucket ...
- 遍历DOM树,过滤节点
jQuery还提供以下方法来过滤节点. 方法 说明 first() 获取第一个,示例 $('li').last() last() 获取最后一个,示例$('li').last() eq() ...
- rhel7磁盘管理
一.MBR主引导记录 MBR有512个字节,分为三个部分:第一部分446个字节,存储了引导分区:第二部分64字节为分区表:第三部分2个字节结束符:每个分区需16个字节,所以MBR的模式 ...
- Nginx入门安装升级
1).Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx特点是占有内存少,并发能力强,事实上Ngi ...
- SQL server 基本语法
文字摘自https://www.cnblogs.com/chaoa/articles/3894311.html 一.定义变量 --简单赋值 declare @a intset @a=5 print @ ...
- linux下arm汇编注释符
注意使用 @ 符 # 是整行注释符 @ 是行内注释符 以为 @ 是行内注释符,害我调试了半天.