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
随机推荐
- HTML页面禁用Enter键自动提交表单
今天在开发页面时,遇到一个小BUG,,如下图 在页面的文本框获取焦点之后,再按键盘上的Enter键,页面form就会自动提交.如下是页面禁止Enter自动提交代码: document.onkeydow ...
- JSP页面java代码报错:Purgoods cannot be resolved to a type
错误提示 : Purgoods cannot be resolved to a type Purgoods不能解析为一个类型 原因 : 缺少引入Purgoods类 页面中引入java类,执行java代 ...
- 使用jsoup爬取所有成语
前几天看到有人在博问上求所有成语,想到刚好看了jsoup,就动手实践了一下,提问者给出了网站,一看很简单,就两种页面,一种是包含某个字的成语链接页面,一个是具体的包含某个字的成语的页面 下面是我的代码 ...
- 尚硅谷redis学习5-初识redis.conf
redis.conf是redis的配置文件,在解压后的redis安装文件夹下 单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 包含 ...
- Linux性能测试分析命令_vmstat
vmstat命令主要是对操作系统的虚拟内存.进程.IO读写.CPU活动等整体情况进行统计.但是它不能对某个进程进行深入分析. vmstat基本语法 命令使用格式:vmstat [options] [d ...
- webpack打包avalon+oniui+jquery
随着avalon的发展壮大,我根据CSDN的统计数字,中国前端大概有1%的人在使用avalon了. avalon的最大优势是能兼容IE6,并且其API是非常稳定,只是在1.3.7 对ms-duplex ...
- openwrt用WEB刷固件型号不对问题强行处理
参照这里:https://blog.csdn.net/caoshunxin01/article/details/79355602 原机是一块mt7620A的通板,之前刷了一个叫WE826型号的固件,发 ...
- win10 搭建react-native开发环境
本文地址:http://www.cnblogs.com/jying/p/7992130.html 系统:win10 系统内存:8G java-jdk:1.8.144 开发工具:vs code 首先是网 ...
- 用Lucene4.5对中文文本建立索引
这里需要完成一个能对txt文本建立索引,并能完成检索查询.完成这个功能,使用的是Lucene4.5,同时使用其自带的中文分析器. 准备工作是在一个文件夹里面建一些txt文件,这是我的文件结构: 首先要 ...
- redis滴
Redis 可用于内存存储,也可以基于持久化存储 Key-Value的形式存储. Redis的数据结构 1.字符串(string) 2.字符串列表(lists) 3.字符串集合(sets) 4.有序字 ...