使用Perl获取所有可能的字符串组合
发布时间:2020-12-15 23:26:44 所属栏目:大数据 来源:网络整理
导读:给定一个字符串例如’rogerdavis’它应该将它转换为’rogerd @ vis’或’rogerdav!s’或’rogerdavi $’或’rogerd @ v!$’以及所有可能的组合并将其附加到文件中.所以基本上必须将’a’转换为’@’,将’s’转换为’$’,将’i’转换为’
给定一个字符串例如’rogerdavis’它应该将它转换为’rogerd @ vis’或’rogerdav!s’或’rogerdavi $’或’rogerd @ v!$’以及所有可能的组合并将其附加到文件中.所以基本上必须将’a’转换为’@’,将’s’转换为’$’,将’i’转换为’!’并使用所有可能的组合.这是在Perl中完成的.
伪代码 >创建一个新文件 这是我最初想到的.请帮助我,因为我知道必须有一个简单而简单的方法来做这件事: >在数组关键字[]中接受关键字 total_poss =0; r= 1; new_count = count for (i = count; i > 0; i--) { // fact( ) will calculate factorial total_poss += fact(new_count)/(fact(r)*fact(new_count - r)) r++; } for (k=0; k<total_poss; total_poss++) copy array keyword[ ] in temporary array temp[ ]; for (i=0; i< new_count; i++) { for (j = 0; j< lenght_of_keyword; j++) { if (temp[i] is equal to 'a' || 'A' || 's' || 'S' || 'i' || 'I' ) { switch (temp[j]) case i: tempt[i] = ! ; if ( modified array is equal to an entry in file) continue; else save in file; break; case I: (same as above or we can have function for above code) . .// similarly for all cases . } } } 解决方法
我想给
List::Gen 一个旋转.这个问题提供了完美的借口!
use strict; use warnings; use List::Gen; my %symbol = ( a => '@',A => '@',i => '!',I => '!',s => '$',S => '$',); # Symbol table my $string = 'rogerdavis'; my @chunks = split /(?<=[ais])|(?=[ais])/i,$string; # Turn into arrayrefs for cartesian function @chunks = map { $_ =~ /^[ais]$/i ? [ $_,$symbol{$_} ] : [ $_ ] } @chunks; my $cartesian = cartesian { join '',@_ } @chunks; # returns a generator say for @$cartesian; # or 'say while < $cartesian >' 产量
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |