0

为了解决subsequence check 我试图在两个不同的数组中输入两个字符串并通过数组索引访问它们的问题?

C中,我像下面那样做了..

char text[25000],pattern[25000];
scanf("%s %s",text,pattern);

我可以通过数组索引访问每个字符。

我怎样才能在 perl 中做同样的事情?

在 perl 中,我没有找到任何特定于访问数组索引的内容。我得到的只是使用 perlsplit函数..

my @pattern = split(" ",<>);

这会根据空间拆分输入并分配给数组索引,如果输入类似于拆分canada nad将分配canada$pattern[0]$pattern[1]nad

但我希望它们在两个单独的数组中?

我发现另一个分裂的用户喜欢..

my @pattern = split(undef,<>);
foreach my $val (@pattern){
     print $val."\n";
}

这可以访问字符串的所有字符,但问题是我不能将它们分配到两个不同的数组中。

提前感谢任何想法/建议。

明白了,我正在寻找这样的东西..

my ($text,$pattern) = split(' ',<>);
my @textarr= split //,$text;
my @patterarr= split //,$pattern;
4

1 回答 1

1

不清楚你要不要

# Two strings (which are scalars, not arrays)
my $text = "canada";
my $pattern = "nad";

或者

# Two array of single-char strings
my @text_chars = ("c", "a", "n", "a", "d", "a");
my @pattern    = ("n", "a", "d");

如果你想要前者,

my ($text, $pattern) = split(' ', $line);

如果您想要后者,请跟进

my @text_chars    = split //, $text;
my @pattern_chars = split //, $pattern;

如果您不介意处理对数组的引用,也可以使用以下方法来实现后者:

my ($text_chars, $pattern_chars) = map [ split // ], split ' ', $line;

在上面,$line使用

chomp( my $line = <> );
于 2013-05-17T05:15:03.510 回答