(未AC)7-4 求指定层的元素个数 (25分)

输入一个嵌套列表,再输入层数,求该层的数字元素个数。

输入格式:

第一行输入列表 第二行输入层数

输出格式:

在一行中输出元素个数

输入样例:

在这里给出一组输入。例如:

[1,2,[3,4,[5,6],7],8]
3

输出样例:

在这里给出相应的输出。例如:

2
 1 #include<iostream>
 2 #include<stack>
 3 #include<string>
 4 #include<cctype>
 5 using namespace std;
 6 int main()
 7 {
 8     stack<int>stk;
 9     string s;
10     int N, sum = 0, k = 0;
11     cin >> s;
12     cin >> N;
13     for (int i = 0; i < s.length(); i++)
14     {
15         if (isalnum(s[i])||s[i]==‘[‘)
16         {
17             if (s[i] == ‘[‘)
18                 sum++;
19             stk.push(s[i]);
20         }
21         if (s[i]==‘]‘)
22         {
23             while (stk.top()!=‘[‘)
24             {
25             stk.pop();
26             k++;
27             }
28             stk.pop();
29         if (N==sum)
30         {
31             cout << k;
32             break;
33         }
34         else
35         {
36             k = 0;
37         }
38         sum--;
39         }
40     }
41 }

原文地址:https://www.cnblogs.com/luoyoooo/p/12215782.html

时间: 2024-10-12 04:12:14

(未AC)7-4 求指定层的元素个数 (25分)的相关文章

(未AC)7-9 转圈游戏(2013慈溪) (30分)

输入格式: 输出格式: 输入样例: 4 1 2 3 输出样例: 1 2 3 0 原文地址:https://www.cnblogs.com/luoyoooo/p/12215810.html

7-21 求前缀表达式的值(25 分)

前缀表达式的计算机求值:从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op 次顶元素),并将结果入栈:重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果.例如前缀表达式"- × + 3 4 5 6":(1) 从右至左扫描,将6.5.4.3压入堆栈:(2) 遇到+运算符,因此弹出3和4(3为栈顶元素,4为次顶元素,注意与后缀表达式做比较),计算出3+4的值,得7,再将7入栈:(3) 接下来是×运算符,因此

求二叉树第K层的节点个数+求二叉树叶子节点的个数

size_t _FindLeafSize(Node* root)     //求二叉树叶子节点的个数    {        //static size_t count = 0;        if (root == NULL)            return 0; if (root->_left == NULL&&root->_right == NULL);        return 1; return _FindLeafSize(root->_right) +

九度OJ 1016 火星A + B 未AC版,整型存储不下

#include <iostream> #include <string.h> #include <sstream> #include <math.h> #include <vector> #include <algorithm> using namespace std; int susuTable[28]={1}; bool isLear(int num) { if(num==2) return true; else { int i

hdu4417 树状数组(求指定区间比指定数小的数的个数)

http://acm.hdu.edu.cn/showproblem.php?pid=4417 Problem Description Mario is world-famous plumber. His "burly" figure and amazing jumping ability reminded in our memory. Now the poor princess is in trouble again and Mario needs to save his lover.

Report studio交叉表求指定维度和的问题

场景:有年份,维度值,不求所有的维度值的和,只求自己想要的省份的和,其中有些省份的值可能为空. 交叉表设计: 运行如图示: 下面要求在交叉表下方多出一列,求上海市与河南省的和.然后空白显示0 解决: 新建数据项:上海市+河南省 表达式为 if(total([订单笔数] within set [河南省])=null) then ( total([订单笔数] within set [上海市]) ) else ( total([订单笔数] within set [河南省])+total([订单笔数]

R语言两种方式求指定日期所在月的天数

             R语言两种方式求指定日期所在月的天数 days_monthday<-function(date){ m<-format(date,format="%m") days31<-c("01","03","05","07","08","10","12") days30<-c("04",&

求指定整数范围内的素数之和

//求指定整数范围内的素数之和int getSumResult(int start,int end){ int i,j; int flag=0; int result=0; if(start<0||end <0) { lr_output_message("开始值.结束值需要为正整数"); exit(-1); } else if(start>=end) { lr_output_message("开始值需要<结束值"); exit(-1); }

2017乌鲁木齐区域赛K(容斥原理【求指定区间内与n互素的数的个数】)

#include<bits/stdc++.h>using namespace std;const long long mod = 998244353;typedef const long long ll;vector<long long>p;long long inv(long long x,long long y)//快速幂求逆元模板(以乘代除){    long long r=1;    while(y>0)    {        if(y&1)