关注
第三题 用字符串做的
import java.util.Scanner;
/*
* 模拟一个连续的内存块,其大小固定为100字节:
1.用户输入"REQUEST=10"表示从内存中分配一个连续的大小为10字节的空间,当分配成功时,
输出内存区块的首地址,分配失败(内存空间不足)时输出"error"
2.用户输入“RELEASE=0”,表示释放首地址为0所对应的区块,如果不存在相应区块,则输出“error”,反之不输出
* */
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// TODO Auto-generated method stub
StringBuilder str = new StringBuilder(100);
//a 空 b为头 c为体
for(int i=0;i<100;i++) {
str.append('a');
}
do {
String input = sc.next();
if(input.equals("000")) {
break;
}
int num = Integer.parseInt(input.substring(8));
int boo = input.substring(0, 7).equals("REQUEST")?1:0;//1代表存 0代表释放
System.out.println(Solution(num, boo, str));
for(int i=0;i<100;i++) {
System.out.print(str.charAt(i));
}
System.out.println();
}while(true);
}
public static String Solution(int num,int boo,StringBuilder str) {
if(boo==1) {//分配空间
if(num==1) {
int a = str.indexOf("a");
str.setCharAt(a, 'b');
return ""+a;
}else {
StringBuilder a = new StringBuilder("b");
StringBuilder b = new StringBuilder("a");
for(int i=0;i<num-1;i++) {
a.append('c');
b.append('a');
}
int c=str.indexOf(b.toString());
if(c!=-1) {
str.replace(c, c+num, a.toString());
return ""+c;
}else {
return "error";
}
}
}else {//释放空间
if(str.charAt(num)=='b') {
int count = 1;
for(int i=num+1;i<=99&;&;str.charAt(i)=='c';i++) {
count++;
}
for(int i=num;i<(num+count);i++) {
str.setCharAt(i, 'a');
}
return "";
}else {
return "error";
}
}
}
}
查看原帖
点赞 1
相关推荐
牛客热帖
正在热议
# 拼多多求职进展汇总 #
234118次浏览 2032人参与
# ai智能作图 #
22735次浏览 270人参与
# 阿里云管培生offer #
59787次浏览 1751人参与
# 25届秋招总结 #
399610次浏览 4002人参与
# 实习,投递多份简历没人回复怎么办 #
2436792次浏览 34709人参与
# 地方国企笔面经互助 #
6621次浏览 16人参与
# 北方华创开奖 #
66189次浏览 549人参与
# 机械求职避坑tips #
22562次浏览 242人参与
# 25届机械人为了秋招做了哪些准备? #
25368次浏览 357人参与
# 我的实习求职记录 #
6124252次浏览 83968人参与
# 歌尔求职进展汇总 #
42801次浏览 294人参与
# 如果再来一次,你还会选择这个工作吗? #
111532次浏览 1119人参与
# 机械人怎么评价今年的华为 #
157290次浏览 1346人参与
# 硬件兄弟们 甩出你的华为奖状 #
78084次浏览 626人参与
# 经纬恒润求职进展汇总 #
99373次浏览 960人参与
# 联想求职进展汇总 #
202791次浏览 1816人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
10074次浏览 217人参与
# 实习与准备秋招该如何平衡 #
723140次浏览 8552人参与
# 腾讯求职进展汇总 #
207814次浏览 1694人参与
# 牛客租房专区 #
4672次浏览 122人参与
# 华为工作体验 #
110222次浏览 855人参与
# 实习中的菜狗时刻 #
280719次浏览 2764人参与