关注
第三题 用字符串做的
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
相关推荐
点赞 评论 收藏
分享
叁六玖:给我透个底,你会什么 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的mentor是什么样的人? #
13438次浏览 98人参与
# 牛客周边新品开箱 #
9826次浏览 89人参与
# 快手技术岗信息交流阵地 #
481次浏览 6人参与
# 怎么给家人解释你的工作? #
8988次浏览 61人参与
# 牛友的志愿填报指南 #
33917次浏览 183人参与
# 帮我看看,领导说这话什么意思? #
17568次浏览 92人参与
# 求职中的尴尬瞬间 #
2394次浏览 32人参与
# 求职低谷期你是怎么度过的 #
11211次浏览 228人参与
# 26届秋招公司红黑榜 #
25563次浏览 104人参与
# 校招泡的最久的公司是哪家? #
11072次浏览 74人参与
# 从哪些方向判断这个offer值不值得去? #
14395次浏览 171人参与
# 牛客树洞,我想对你说 #
5907次浏览 79人参与
# 机械人集合!你是什么工程师? #
19418次浏览 91人参与
# 国企还是互联网,你怎么选? #
168462次浏览 1215人参与
# 得物app工作体验 #
27413次浏览 64人参与
# 你觉得mentor喜欢什么样的实习生 #
15101次浏览 401人参与
# 面试紧张时你会有什么表现? #
3323次浏览 37人参与
# 度小满求职进展汇总 #
11974次浏览 64人参与
# 小红书求职进展汇总 #
123688次浏览 966人参与
# 今年形式下双非本找得到工作吗 #
236386次浏览 1427人参与
# 没有家庭托举的我是怎么找工作的 #
17824次浏览 209人参与
查看9道真题和解析