671. 循环单词

671. 循环单词 

The words are same rotate words if rotate the word to the right by loop, and get another. Count how many different rotate word sets in dictionary.

E.g. picture and turepic are same rotate words.

 注意事项

所有单词均为小写。

样例

Given dict = ["picture", "turepic", "icturep", "word", "ordw", "lint"]
return 3.

"picture", "turepic", "icturep" are same ratote words.
"word", "ordw" are same too.
"lint" is the third word that different from the previous two words.

这道题我犯得主要错误是string的片段赋值不会;程序不精简时间超限;
class Solution {
public:
    /*
     * @param words: A list of words
     * @return: Return how many different rotate words
     */
int countRotateWords(vector<string> words) 
{
// 671. 循环单词 Write your code here
int n=words.size();
if(n==0) return 0;if(n==1) return 1;
vector<int> rept(n,-1);
int result=0;
for(int i=0;i<n;i++)
{
if(rept[i]!=-1||words[i]=="")continue;       
else
{
for(int j=i+1;j<n;j++)
{
if(rept[j]!=-1||words[i].length()!=words[j].length()) continue;
int idx=words[i].find(words[j][0]);
if(idx==-1) continue;
string s0="";
while(true)
{
string s1=string(words[i],idx)+string(words[i],0,idx);
if(s1==words[j])
{
rept[i]=i;rept[j]=i;
break;
}
s0=string(words[i],idx+1);
int idx1=s0.find(words[j][0]);
if(idx1==-1) break;

idx=idx1+idx+1; //截取片段查找的结果要加上截取之前的长度

}

}
result++;
}
}
return result;
}
};
【轴承故障诊断】加权多尺度字典学习模型(WMSDL)及其在轴承故障诊断上的应用(Matlab代码实现)内容概要:本文介绍了加权多尺度字典学习模型(WMSDL)在轴承故障诊断中的应用,并提供了基于Matlab的代码实现。该模型结合多尺度分析与字典学习技术,能够有效提取轴承振动信号中的故障特征,提升故障识别精度。文档重点阐述了WMSDL模型的理论基础、算法流程及其在实际故障诊断中的实施步骤,展示了其相较于传统方法在特征表达能力和诊断准确性方面的优势。同时,文中还提及该资源属于一个涵盖多个科研方向的技术合集,包括智能优化算法、机器学习、信号处理、电力系统等多个领域的Matlab仿真案例。; 适合人群:具备一定信号处理和机器学习基础,从事机械故障诊断、工业自动化、智能制造等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习并掌握加权多尺度字典学习模型的基本原理与实现方法;②将其应用于旋转机械的轴承故障特征提取与智能诊断;③结合实际工程数据复现算法,提升故障诊断系统的准确性和鲁棒性。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注字典学习的训练过程与多尺度分解的实现细节,同时可参考文中提到的其他相关技术(如VMD、CNN、BILSTM等)进行对比实验与算法优化。
要实现一个简单的生词本应用,我们可以使用Python的数据结构(如字典)来存储单词及其相关信息。以下是一个基础的实现示例: ```python class VocabBook: def __init__(self): self.vocab = {} # 使用字典存储单词和相关数据 # 添加新单词 def add_word(self, word, definition=None, translation=None): if word not in self.vocab: self.vocab[word] = {'definition': definition, 'translation': translation} else: print(f"Word '{word}' already exists.") # 查看单词 def view_word(self, word): if word in self.vocab: print(f"Word: {word}") print(f"Definition: {self.vocab[word]['definition']}") print(f"Translation: {self.vocab[word]['translation']}") else: print("Word not found.") # 删除单词 def remove_word(self, word): if word in self.vocab: del self.vocab[word] print(f"{word} has been removed.") else: print("Word not found.") # 清空单词列表 def clear_vocab(self): self.vocab.clear() print("Vocabulary cleared.") # 退出程序 def exit(self): print("Thank you for using the vocabulary book. Goodbye!") return False # 假设此方法用于循环控制,在实际应用中可能需要更复杂逻辑 # 创建实例并交互使用 book = VocabBook() while True: action = input("Choose an action (add, view, remove, clear, exit): ") if action == "add": word = input("Enter the word to add: ") definition = input("Enter the definition (optional): ") translation = input("Enter the translation (optional): ") book.add_word(word, definition, translation) elif action == "view": word = input("Enter a word to view: ") book.view_word(word) elif action == "remove": word = input("Enter a word to remove: ") book.remove_word(word) elif action == "clear": book.clear_vocab() elif action.lower() == "exit": if book.exit(): break else: print("Invalid action. Please try again.") ``` 这个例子中,我们定义了一个`VocabBook`类,包含上述提到的功能。用户可以通过交互式的命令行界面进行操作。要运行此程序,你需要将这些代码放在一个`.py`文件中,并在命令行中运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值