我想知道字符串中连续字母表的最大数量(不包括order)的长度。例如:
ashjklmghipo
这里我们有连续的字母下注: jklm,ghi,po。最大连续字母表为jklm。所以长度是4。
我对连续的数字做了同样的事情,但不知道如何对字母表做这件事。任何帮助都将受到高度的感谢。TIA :)
发布于 2019-06-27 05:24:38
把它简化为你已经解决的问题:
x = "ashjklmghipo"
x_letters = strsplit(x, "")[[1]]
x_digits = match(x_letters, letters)
x_digits
# [1] 1 19 8 10 11 12 13 7 8 9 16 15
不,你需要在x_digits
中找到连续位数的最大值,你说你已经知道怎么做了。(如果您需要帮助,请访问see this question。)
发布于 2019-06-27 07:27:39
我在想如何用一些矩阵运算符来做这件事,但我只用递归策略解决了它。
我希望它是有用的:
OBS: R有一个名为letters
的全局变量
#Get string
x = "ashjklmghipo"
#split in char
l = strsplit(x, "")[[1]]
# sort if you want
# l = sort(l)
# Creating data.frame with inital letter: 'init' and number of consecutives: 'n'
nleters = data.frame(init = l, n = 0)
# Using recursive strategi
kmax = length(l)
for(k in 1:kmax){
# var letters is sorted in alphabet order
aux = (letters[letters >= l[k]] == l[k:kmax])
for(i in 1:length(aux)){
# test if
if(aux[i]){
nleters[k,"n"] = nleters[k,"n"] + 1
# in first non consecutive "aplhabet" breaks inner loop
}else{break()}
}
}
# print result
nleters[order(-nleters$n),]
https://stackoverflow.com/questions/56781024
复制相似问题