首页 > 试题广场 >

字符串解密

[编程题]字符串解密
  • 热度指数:1014 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个由字符 \texttt{`0'}\texttt{`1'} 构成的字符串 s。我们从字符串开头开始,按照长度依次取出以下子串并解析为十进制数:
\hspace{23pt}\bullet\, 长度 1 的子串;
\hspace{23pt}\bullet\, 长度 2 的子串;
\hspace{23pt}\bullet\, 长度 3 的子串;
\hspace{23pt}\bullet\, …;
\hspace{23pt}\bullet\, 长度 10 的子串;
\hspace{23pt}\bullet\, 然后循环回长度 1,依此类推;
\hspace{15pt}子串被取走后,视为删除,下一次从剩余的字符串中继续取子串,直到剩余字符不足以组成当前长度的子串。
\hspace{15pt}请输出解析得到的十进制数字序列。

输入描述:
\hspace{15pt}在一行上输入一个长度为 1\leqq {\rm len}(s) \leqq 10^{5},由字符 \texttt{`0'}\texttt{`1'} 构成的字符串 s


输出描述:
\hspace{15pt}第一行输出一个整数 p,表示解析得到的数字个数; 
\hspace{15pt}第二行输出 p 个整数,表示所有解析出的十进制数字,数字之间用空格隔开。
示例1

输入

0101001001010

输出

4
0 2 4 9

说明

\hspace{15pt}在这组样例中,s=\texttt{,依次切分并解析如下: 
\hspace{23pt}\bullet\, 长度 1 的子串 \texttt{ 转换为 0
\hspace{23pt}\bullet\, 长度 2 的子串 \texttt{ 转换为 2
\hspace{23pt}\bullet\, 长度 3 的子串 \texttt{ 转换为 4
\hspace{23pt}\bullet\, 长度 4 的子串 \texttt{ 转换为 9
\hspace{15pt}此后剩余字符长度不足以组成长度 5 的子串,故舍弃。
\hspace{15pt}因此总共解析得到 4 个数字,分别为 0,2,4,9
示例2

输入

100

输出

2
1 0
头像 Silencer76
发表于 2025-11-25 17:50:04
题目链接 字符串解密 题目描述 给定一个由字符 '0' 和 '1' 构成的字符串 。我们从字符串开头开始,按照一个循环变化的长度规则依次取出以下子串并解析为十进制数: 长度 1 的子串; 长度 2 的子串; ... 长度 10 的子串; 然后循环回长度 1,依此类推; 子串被取走后,视为从原字符 展开全文
头像 牛客692790965号
发表于 2025-11-28 09:26:23
#include <iostream> #include<vector> using namespace std; int turn(string st){ int power=1,sum=0; for(int i=st.size()-1;i>=0;i- 展开全文
头像 登高客
发表于 2025-11-28 09:34:01
#include <bits/stdc++.h> typedef long long ll; using namespace std; string s; vector<int> v; ll solve(int l, int r) { ll sum = 0; 展开全文
头像 震惊室友第一录
发表于 2025-11-28 11:34:16
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main{ public static void main(String[] args) { 展开全文
头像 糯米团纸
发表于 2025-11-29 19:59:18
#include <bits/stdc++.h> using namespace std; #define ll long long string s; vector<ll>a; int main() { cin>>s; ll m=1,l=0,r= 展开全文
头像 鱼很腾
发表于 2025-11-25 21:44:26
#include <stdio.h> #include<string.h> #include<math.h> int main() { char a[100001]; scanf("%s",a); int b[11]= 展开全文
头像 钉钉铛铛
发表于 2025-11-29 22:50:58
#include <iostream> #include <vector> #include <string> using namespace std; int main() { string s; cin >> s; vec 展开全文
头像 钉钉铛铛
发表于 2025-11-29 23:02:20
#include <iostream> #include <vector> #include <string> using namespace std; // 将二进制字符串转换为十进制数 long long binaryToDecimal(const stri 展开全文
头像 AK0
发表于 2025-11-27 10:22:02
#include <bits/stdc++.h> using namespace std; signed main() { ios::sync_with_stdio(0); cin.tie(0); string s; cin >> s; int p = 展开全文
头像 梦洛霜
发表于 2025-11-27 17:05:13
import sys s=sys.stdin.readline().strip() result_list=[] start=0 count=1 org_len=len(s) residue_len=len(s) while(True): if count<=residue_len: 展开全文