1
11
GNU脚本
结果:
出现大于x时:
仅返回长度大于y的单词(在第二个grep中输入y+1点):
忽略“and,is,the,etc”等常用术语(假设常用术语在“ignored”文件中)
在处理之前,请随意删除标点符号(即“john”变为“john”):
返回集合/数组中的结果:它已经类似于shell的数组:第一列是count,第二列是word。 |
2
6
Perl只有43个字符。
下面是它的使用示例:
如果只需要列出小写版本,则还需要两个字符。
要处理指定的文本,需要58个字符。
real 0m0.679s user 0m0.304s sys 0m0.084s 下面是最后一个扩展了一点的示例。
|
3
4
弗斯 304个字符
|
4
3
红宝石
当“缩小”时,此实现将变为165个字符长。它使用
注意,我没有计算要跳过的单词的大小,这是一个外部常量。当对常量进行计数时,解决方案的长度为244个字符。 撇号和破折号不会被去掉,而是包含在内;它们的使用会修改单词,因此,如果不删除符号之外的所有信息,就不能简单地去掉。 实施
试验台
试验结果
|
5
3
C 3.0(带LINQ)这是我的解决方案。它利用LINQ/扩展方法的一些非常好的特性来保持代码的简短。
然而,这远远不是最有效的方法,
下面是对示例文本运行函数的结果(最小出现次数:3,最小长度:2)。 3 x such 4 x code 4 x which 4 x declarations 5 x function 4 x statements 3 x new 3 x types 3 x keywords 7 x statement 3 x language 3 x expression 3 x execution 3 x programming 4 x operators 3 x variables 我的测试程序:
|
6
3
这就是简单的形式。如果需要排序、筛选等:
您还可以很容易地对输出进行排序:
一个真正的Perl黑客可以很容易地在一行或两行上获取这些信息,但我追求的是可读性。
Edit: this is how I would rewrite this last example
或者如果我需要它运行得更快,我甚至可以这样写:
它使用地图来提高效率, grep删除多余元素, 当然,排序就是进行排序。 (按顺序进行) |
7
2
另一个python解决方案,247个字符。实际的代码是一行由134个字符组成的高度密集的python行,用一个表达式计算整个过程。
一个更长的版本,有大量的评论供您阅读:
这里的主要技巧是使用itertools.groupby函数来计算排序列表中出现的次数。不知道它是否真的保存了字符,但它确实允许在一个表达式中进行所有处理。 结果:
|
8
2
C代码:
processText(文本,3,2)调用的输出:
|
9
1
C中:
|
10
1
雷布尔也许是冗长的,所以肯定不是赢家,而是完成任务。
输出是:
|
11
1
蟒蛇 (258个字符,包括首行66个字符和删除标点符号30个字符):
输出:
|
12
0
下面是我的变体,在php中:
|
13
0
这不会赢得任何高尔夫球奖,但它会将引用的短语放在一起,并考虑到停止词(和利用 CPAN 模块 Lingua::StopWords 和 Text::ParseWords )
此外,我使用
你可能还想看看 Lingua::CollinsParser .
输出: === only words appearing 4 or more times === statement : 11 function : 7 expression : 6 may : 5 code : 4 variable : 4 operator : 4 declaration : 4 c : 4 type : 4 === only words that are 12 characters or longer === reinitialization : 2 control-flow : 1 sequence point : 1 optimization : 1 curly brackets : 1 text-line-based : 1 non-structured : 1 column-based : 1 initialization : 1 |
kempinski · 在分隔符之间随机化文本 9 年前 |
taiko · CSV文件-如何在Perl中使用正则表达式限制字段长度 9 年前 |
Alby · 在java中解析来自原始http请求的表单参数 10 年前 |
Katie H · 解析文本并保持原始格式-Ruby/Rails 10 年前 |
snookian · 使用2个分隔符分析格式化文本以生成两个数组[重复] 11 年前 |