关注
第三题 用字符串做的
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
相关推荐
点赞 评论 收藏
分享
Java抽象小篮子:大一真别急,再玩一年吧,找后端开发的话直接把第三个项目删了,建立怎么写可以看看我之前发的帖子
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你认为小厂实习有用吗? #
13257次浏览 185人参与
# 面试官是我前女友 #
106819次浏览 730人参与
# 实习生的蛐蛐区 #
38851次浏览 324人参与
# 当你面对裁员会如何? #
275852次浏览 2438人参与
# 计算机有哪些岗位值得去? #
12542次浏览 131人参与
# lastday知无不言 #
56789次浏览 459人参与
# 在职场上,你最讨厌什么样的同事 #
14383次浏览 150人参与
# 推荐一首陪你工作的歌吧 #
13980次浏览 97人参与
# 说说你知道的学历厂 #
27409次浏览 174人参与
# 你找工作的时候用AI吗? #
14512次浏览 192人参与
# 下班后的时间你怎么安排 #
7147次浏览 111人参与
# 哪一瞬间觉得自己长大了 #
7123次浏览 160人参与
# 携程求职进展汇总 #
559339次浏览 4258人参与
# 面试尴尬现场 #
22887次浏览 160人参与
# 工作后会跟朋友渐行渐远吗 #
29990次浏览 216人参与
# 中核求职进展汇总 #
20092次浏览 152人参与
# 社会教会你的第一课 #
28566次浏览 388人参与
# 多益网络工作体验 #
49555次浏览 280人参与
# 虾皮求职进展汇总 #
244127次浏览 1797人参与
# 神州信息工作体验 #
15944次浏览 74人参与