给定一个长度为 、由大小写字母混合构成的字符串 ,你可以无限次的往字符串的任何地方插入任意字符。求新字符串 的最小循环节。 对于字符串 ,找到最短长度的子串 ,使得字符串 是由子串 拼接若干次得到的,即 。这里的子串 的长度即为字符串 的最小循环节。
区块链毕设网qklbishe.com为您提供问题的解答
既然可以任意插入字符,那么最小循环节必由初始字符串原有的那些字符组成(因为如果我们再加入新的字符,会将循环节扩大),又要确保循环节覆盖到每一个已有字符,所以最小循环节的长度就等于已有字符串去重之后的长度。
s=input()
li=[]
for i in s:
if i not in li:
li.append(i)
print(len(li))
16:52
#include<iostream> #include<set> using namespace std; int main(){ string s; cin>>s; set<char> st; for(auto&ch:s) st.insert(ch); cout<<st.size(); }
26:38
以上就是关于问题给定一个长度为 、由大小写字母混合构成的字符串 ,你可以无限次的往字符串的任何地方插入任意字符。求新字符串 的最小循环节。
对于字符串 ,找到最短长度的子串 ,使得字符串 是由子串 拼接若干次得到的,即 。这里的子串 的长度即为字符串 的最小循环节。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训