Exception[lc_word] = Exception[lc_word] "n" location word
else
Exception[lc_word] = location word
}
}
function strip_suffixes(word, wordlist, ending, k, n, regexp){
split("", wordlist)
for(k=1;k<=NOrderedSuffix;k++){
regexp = OrderedSuffix[k]
if(match(word, regexp)){
word = substr(word, 1, RSTART - 1)
if(Replacement[regexp] == "")
wordlist[word] = 1
else{
split(Replacement[regexp], ending)
for(n in ending){
if(ending[n] =="""")
ending[n] = ""
wordlist[word ending[n]] = 1
}
}
break
}
}
}
function swap(a, i, j, temp){
temp = a[i]
a[i] = a[j]
a[j] = temp
}
又是很长的代码,码的头晕。。。不保证全对,注释也先不写了。执行命令:
$ awk -f spell.awk testfile
这里针对搞算法竞赛的同学说一点,shell脚本里的高效,怎么样叫高效,我也是搞竞赛的,总是追求程序运行时的效率,但是在shell脚本里追求的是总体效率。完成一个任务假如编码时间用了1个小时,最终完成的代码运行花30秒钟,和为了优化程序提高运行效率而编码时间花了2个小时乃至更多时间,最后运行代码时间缩减,无论缩减多少,我们都认为这个优化还是不太值得肯定的。这里不是否定代码运行效率,而是要平衡这个编码时间。而且shell目前我感觉应该是线下运行的程序多,不是在线运行的程序,所以时间上的要求可以放宽很多。所以我们要做的就是完成一个任务花费更少的时间就好。个人感觉,不对了感谢指正。










