Count and Say

本文详细介绍了如何通过字符串每个字符的次数统计,生成第N次迭代的计数和说序列。使用了两个字符串进行迭代计算,展示了算法的时间复杂度为3的原因,并提供了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The count-and-say sequence is the sequence of integers beginning as follows:

1, 11, 21, 1211, 111221, ...

1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.

Given an integer n, generate the nth sequence.

Note: The sequence of integers will be represented as a string.

 

思路:字符串每个字符的次数统计,且需根据上一个求出下一个,所以需要两个string。

time之所以最大值为3,是因为若两个不同的值组合如12--》1112,而两个相同值11--》21.

class Solution {
public:
    char Myitoa(int a)
    {
        return a+'0';
    }
    string countAndSay(int n) {
        string s="1";
        string res;
        int time=1;
        if(n==1) return s;
        while(n-1)
        {
            --n;
            res.clear();
            int len=s.size();
            for(int i=0;i<len;++i)
            {   
                if(i!=len-1&&s[i]==s[i+1]) 
                    ++time;
                else{
                    res.push_back(Myitoa(time));//time是数字,且在1-3之间
                    res.push_back(s[i]);
                    time=1;
                }
            }
            s.clear();
            s=res;
        }
        return res;
    }
};

 

转载于:https://www.cnblogs.com/fightformylife/p/4072897.html

内容概要:本文档是关于基于Tecnomatix的废旧智能手机拆解产线建模与虚拟调试的毕业设计任务书。研究内容主要包括:分析废旧智能手机拆解工艺流程;学习并使用Tecnomatix软件搭建拆解产线的三维模型,包括设备、输送装置等;进行虚拟调试以模拟各种故障情况,并对结果进行分析提出优化建议。研究周期为16周,涵盖了文献调研、拆解实验、软件学习、建模、调试和论文撰写等阶段。文中还提供了Python代码来模拟部分关键流程,如拆解顺序分析、产线布局设计、虚拟调试过程、故障模拟与分析等,并实现了结果的可视化展示。 适合人群:本任务书适用于机械工程、工业自动化及相关专业的本科毕业生,尤其是那些对智能制造、生产线优化及虚拟调试感兴趣的学生。 使用场景及目标:①帮助学生掌握Tecnomatix软件的应用技能;②通过实际项目锻炼学生的系统建模和虚拟调试能力;③培养学生解决复杂工程问题的能力,提高其对废旧电子产品回收再利用的认识和技术水平;④为后续的研究或工作打下坚实的基础,比如从事智能工厂规划、生产线设计与优化等工作。 其他说明:虽然文中提供了部分Python代码用于模拟关键流程,但完整的产线建模仍需借助Tecnomatix商业软件完成。此外,为了更好地理解和应用这些内容,建议学生具备一定的编程基础(如Python),并熟悉相关领域的基础知识。
内容概要:本文档《Kotlin语言教程&案例之基础入门与核心应用》深入介绍了Kotlin这一现代编程语言的关键概念、核心技巧、应用场景及未来发展趋势。文档首先解析了Kotlin的核心概念,如空安全机制、扩展函数、数据类和协程等,强调了其简洁性、安全性和与Java的无缝交互。其次,通过类型推断和lambda表达式的实战讲解,展示了提升编程效率的方法。文档还列举了Kotlin在Android开发、后端服务、桌面应用和跨平台开发中的具体应用实例,特别是通过用户信息管理系统的代码案例,详细分析了数据类定义、扩展函数实现、协程处理异步查询以及密封类与when表达式的使用。最后展望了Kotlin的未来发展,包括多平台开发、与AI工具的集成以及在数据科学领域的潜力。; 适合人群:对编程有一定了解,尤其是对Java有基础,希望转向或深入了解Kotlin的开发者,以及对跨平台开发感兴趣的程序员。; 使用场景及目标:①学习Kotlin的核心概念,如空安全、扩展函数、数据类和协程等;②掌握提高编程效率的技巧,如类型推断和lambda表达式的使用;③理解Kotlin在不同应用场景下的实战案例,如Android开发、后端服务等;④探索Kotlin的未来发展方向,如多平台开发和与AI工具的集成。; 阅读建议:此资源不仅涵盖了Kotlin的基础理论,还包括大量实战案例,因此在学习过程中应结合实际代码进行练习,特别关注代码中的注释和逻辑,以便更好地理解和掌握Kotlin的特性和优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值