[038]___报数

2024-01-19 20:48
文章标签 报数 038

本文主要是介绍[038]___报数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


/*
Sologala @github https://github.com/Sologala/LeetCode.git
LeetCode [038]___报数
*/

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

1.     1
2.     11
3.     21
4.     1211
5.     111221

1 被读作 "one 1" ("一个一") , 即 11
11 被读作 "two 1s" ("两个一"), 即 21
21 被读作 "one 2", "one 1""一个二" , "一个一") , 即 1211

给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。

注意:整数顺序将表示为一个字符串。

思路:

​ 每次重新统计字符串内的数字的个数 统计个数,然后放进新的字符串中。

ac_code

class Solution {
public:string getnext(string s){string ret;int i =0;while(i<s.length()){char now =s[i];int count =0;while(s[i]==now) {count++;i++;}stack<int> _stack;while(count){_stack.push(count%10);count/=10;}        while(!_stack.empty()) {ret.push_back(_stack.top()+'0');_stack.pop();}ret.push_back(now);}return ret; }string countAndSay(int n) {string ret ="1";int i=1;while(i<n){ret =getnext(ret);            n--;}return ret;}
};

这篇关于[038]___报数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623651

相关文章

找猴王:15只猴子围成一圈从1报数到7的出局,最后谁是猴王。

第一种: package 找猴王;public class Test {public static void main(String[] args) {int n=15;//15只猴子int m=7;//数到7的就出局int count=1;//count为计报数的值,从1开始,7结束int size=n;//size的值从15变到1,到1时就找到了猴王(每数到7的就出局所以会最终剩余1)i

逢3必过报数游戏-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第84讲。 逢3必过报数游戏,本题是2022年4月17日举办的第13届蓝桥杯青少组Python编程省赛真题编程部分第4题,13届一共举办了两次省赛,这是第一次省赛。题目要求编程计算N个小朋友在玩报

Leetcode 038 Count and Say (模拟)

题目连接:Leetcode 038 Count and Say  解题思路:模拟题目的思路,对每个串生成它的下一个串。 class Solution {public:string countAndSay(int n) {string s = "1";for (int i = 1; i < n; i++) {int num = 1;char c = s[0], tmp_c;string t =

力扣刷题--LCR 135. 报数【简单】

题目描述 实现一个十进制数字报数程序,请按照数字从小到大的顺序返回一个整数数列,该数列从数字 1 开始,到最大的正整数 cnt 位数字结束。 示例 1: 输入:cnt = 2 输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,

【Leetcode 38】报数

题目描述 补充说明一下题目的意思 解法一: class Solution:def countAndSay(self, n: int) -> str:prev_person = '1'for i in range(1,n):next_person, num, count = '', prev_person[0], 1for j in range(1,len(prev_person)):if

圆圈报数-约瑟夫问题

问题概述 约瑟夫问题:n个人围成一圈,从第一个人开始报数,数到m的人出圈;再由下一个人开始报数,数到m的人出圈;…输出依次出圈的人的编号。n,m由键盘输入。 解题思路 1 初始级算法 循环报数,每次数到m的倍数就出局此时指向的人。 可以通过list或者是指针来实现保存当前还在游戏中的人的功能,通过索引去出局人。 但是这样的算法效率很低,基本上要O(m*n)的时间复杂度。 2优化算法

【GESP】2023年12月图形化二级 -- 小杨报数

小杨报数 【题目描述】 小杨需要从 1 1 1到 N N N报数。在报数过程中,小杨希望跳过 M M M的倍数。例如,如果 N = 5 N=5 N=5, M = 2 M=2 M=2,那么小杨就需要依次报出 1 1 1, 3 3 3, 5 5 5。 默认小猫角色和白色背景,编写程序计算小杨报数的和( 1 + 3 + 5 = 9 1+3+5=9 1+3+5=9)。 【输入描述】 新建变量

leetcode:LCR 135. 报数.剑指offer打印从1到最大的n位数

实现一个十进制数字报数程序,请按照数字从小到大的顺序返回一个整数数列,该数列从数字 1 开始,到最大的正整数 cnt 位数字结束。 示例 1: 输入:cnt = 2输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,4

Linux C++ 038-STL之排序算法

Linux C++ 038-STL之排序算法 本节关键字:Linux、C++、排序算法 相关库函数:sort、random_shuffle sort 功能描述:对容器内元素进行排序 函数原型: sort(iterator beg, iterator end, _Pred); 示例: #include <algorithm>#include <vector>#include <fu

10个同学排成一个首尾相连的圈,先给每位同学从1到10编号,然后依次报数(1,2, 3),报到3的同学退出,直到只剩1个同学为止。请求出最后剩下的这个同学的编号是多少。

源程序 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp4{class Program{static void Main(string[] args){int[] a = n