- 论坛徽章:
- 22
|
本帖最后由 Windows19 于 2018-04-07 16:22 编辑
各位大大
请看123楼结果描述
有一个算法相乘要求 是这样的 下面就用题来说明一下相乘规律
需要2种不同算法 希望可以用命令能够完成 希望大家帮助一下,谢谢大家
第1种算法需求, 不相乘自身
第2种算法需求, 相乘自身 (已实现)
例如
cat file
a
123
.
/
上面内容都在一个文本中,只举了例子3行 其实行数很多,大概有几千行, 需求要不相乘自身的
根据上面材料,下面是得出不相乘自身字符串结果 这个还没实现!
a123.
a.123
123.a
123a.
.123a
.a123
而下面是得出相乘自身字符串结果
aaa
aa123
aa.
a123a
a123123
a123.
a.a
a.123
a..
123aa
123a123
123a.
123123a
123123123
123123.
123.a
123.123
123..
.aa
.a123
.a.
.123a
.123123
.123.
..a
..123
...
由此可以看出上面乘法规律 他们都是扩展3次相乘每行字符串 (分别就是相乘自身与不相乘自身字符串2种)
论坛大哥写出了相乘自身算法命令 但是不能排除与自身字符串相乘算法
现希望可以改变为不相乘自身字符串
他的相乘自身算法是这样写的 优点可以改相乘4次或多次
- awk -vmaxdepth=3 'function rev(_ARGVEND_,i){deep++;for(i=0;i++<NR;){s=s?s""a[i]:a[i];if(deep==maxdepth){print s}else{rev()};s=substr(s,1,length(s)-length(a[i]))};deep--}{$0==""?NR--:a[++i]=$0}END{rev()}' file
复制代码
现在需求的是 不相乘自身算法命令
何为不相乘自身? 我简单解一下相乘自身特点, 就能不难理解出不相乘自身了
例如
abc123.abc
123.abc123abc
123123
abcabc
上面都在一行中出现了至少有一组相同字符串,这种就是自身与自身相乘算法 (而不相乘自身字符串,在每行中是没有一组字符串相同的)
所以,要排除上面这种自身相乘行,又可以选择扩展乘法次数 例如(awk -vmaxdepth=1,4)
请问如何写呢?谢谢各位帮忙 谢谢
补充一下输出结果
cat file
a
123
.
/
2组不乘自身字符串算法结果应该是
a123
a.
a/
123a
123.
123/
.a
.123
./
/a
/123
/.
而
3组不乘自身字符串算法 待测......
已在123楼给出结果需求....
|
|