+ -
当前位置:首页 → 问答吧 → 怎么判断一个字符串是否是单一字符的重复?

怎么判断一个字符串是否是单一字符的重复?

时间:2011-01-04

来源:互联网

比如,'AAAAAAAAAA' 是 10 个重复的 'A'?

我只想到一个笨办法
  1. my $str = 'AAAAAAAAAA';
  2. my $chr = substr($str, 0, 1);
  3. my $rpt_times = ( $str =~ /$chr/g );
  4. if ( $rpt_times == length($str) ) {
  5.     print 'Y';
  6. }
复制代码
向各位请教更加有效律的方法。

作者: longbow0   发布时间: 2011-01-04

split// 分隔成数组 在判断 不过效率不是最高的。呼唤高手。

作者: liyangole   发布时间: 2011-01-04

回复 longbow0

  1. #!perl  -w
  2. use 5.10.0;

  3. my $str = 'AAAAAAAAAA';
  4. if ( $str =~/^(.)(\1)+$/ ) {
  5.     print "Y\n";
  6. }
复制代码

作者: DIYBYPERL   发布时间: 2011-01-04

谢谢 DIYBYPERL ! 果然很强大!

再多问一下,要是在 5.8 下,有没有好的方法?

作者: longbow0   发布时间: 2011-01-04

回复 DIYBYPERL


    恩, 这个不错。发散思维了。

作者: liyangole   发布时间: 2011-01-04

我在5.8上试试了,也可以啦

作者: liyangole   发布时间: 2011-01-04

多谢各位!

作者: longbow0   发布时间: 2011-01-04

那我也来一个开拓思路的,嘿嘿。
  1. my $str = 'AAAAAAAAAA';
  2. print "Y\n" if($str eq reverse($str));
复制代码

作者: toniz   发布时间: 2011-01-04