给出长度为S
的字符串n
。选择一个整数K
以及两个长度为A
的非空子序列B
和K
,使其满足以下条件:
A = B
,即对于每个i
,ith
中的A
字符与ith
中的B
字符相同。 A
构造为a1,a2,a3,...,an
的索引,其中ai belongs to S
和B
构造为b1,b2,b3,...,bn
的索引,其中bi belongs to S
。如果用A
表示B
和M
中的公共索引数,则M + 1 <= K
。 找到K
的最大值,以便可以找到满足上述条件的子序列A
和B
。
约束:0 < N <= 10^5
我观察到的是:
K = 0
的值,如果给定字符串中的字符数全部不同,即S = abcd
。 K = length of S - 1
,如果字符串中的所有字符都相同,即S = aaaa
。 M
的值不能等于K
,因为这样M + 1 <= K
不会为真,即您不能具有满足A
和B
的子序列A = B
和a1 = b1, a2 = b2, a3 = b3, ..., an = bn
。 >S
是回文,则K = (Total number of times a character is repeated in the string if the repeatation count > 1) - 1
。即S = tenet
,然后将t
重复2
次,e
重复2
次,重复字符的总次数= 4
,K = 4 - 1 = 3
。我在设计算法时无法解决上述问题。
如果需要更多说明,请在评论中告诉我。
给出长度为n的字符串S。选择一个整数K以及两个长度为K的非空子序列A和B,使其满足以下条件:A = B,即对于每个i,A中的第i个字符...
O(n)
answer。]substring