Nam*_*sal 0 regex scripting perl
sub Solution{
$matchflag=0;
$occurence=0;
#OUPTUT [uncomment & modify if required]
my $ind=index($m,$p);
if ($ind!=-1){
$matchflag=1;
}
$occurence= () = $m =~ /$q/g;
print("$matchflag\n");
print($occurence);
}
#INPUT [uncomment & modify if required]
$n=<STDIN>;
$m=<STDIN>;
$p=<STDIN>;
$q=<STDIN>;
Solution();
Run Code Online (Sandbox Code Playgroud)
你好,有人可以告诉我这段代码有什么问题吗?它给了我以下输出。
6
naman
nam
n
0
1
Run Code Online (Sandbox Code Playgroud)
显然 0 应该是 1,因为 nam 存在于 naman 字符串中。并且 1 也应该是 2 因为 n 在字符串中出现两次。
这段代码有什么问题?
当您读取时,<STDIN>您需要删除\n字符串末尾的换行符,
chomp for
$n=<STDIN>,
$m=<STDIN>,
$p=<STDIN>,
$q=<STDIN>,
;
Run Code Online (Sandbox Code Playgroud)
您可能还想通过使用my词法而不是全局变量来考虑更好的范围,以及一些使生活更轻松的检查,例如use strict; use warnings;