Book Borrowing
PHP
Medium
7 views
Problem Description
Commands: ADD book, BORROW book, RETURN book. Track if a book is available. BORROW unavailable prints FAIL.
Input Format
First line q. Next q lines.
Output Format
Outputs for BORROW.
Sample Test Case
Input:
6
ADD Dune
BORROW Dune
BORROW Dune
RETURN Dune
BORROW Dune
BORROW Other
Official Solution
<?php
class Library{
private $avail=[];
function add($b){ $this->avail[$b]=true; }
function borrow($b){
if(isset($this->avail[$b]) && $this->avail[$b]===true){ $this->avail[$b]=false; return 'OK'; }
return 'FAIL';
}
function ret($b){ if(isset($this->avail[$b])) $this->avail[$b]=true; }
}
$inputLines=preg_split('/\\R/', rtrim(stream_get_contents(STDIN)));
if(!$inputLines || trim($inputLines[0])==='') exit;
$q=intval($inputLines[0]);
$lib=new Library(); $output=[];
for($i=1;$i<=$q;$i++){
$tokens=preg_split('/\\s+/', trim($inputLines[$i] ?? ''), 2);
$cmd=$tokens[0] ?? '';
$arg=$tokens[1] ?? '';
if($cmd==='ADD') $lib->add($arg);
elseif($cmd==='BORROW') $output[]=$lib->borrow($arg);
elseif($cmd==='RETURN') $lib->ret($arg);
}
echo implode(PHP_EOL,$output);
?>
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!