字符串p型编码

embedded/2024/12/3 8:33:09/

字符串p型编码

    • C 语言实现
    • C++ 实现
    • Java 实现
    • Python 实现


💐The Begin💐点点关注,收藏不迷路💐

给定一个完全由数字字符(‘0’,‘1’,‘2’,…,‘9’)构成的字符串str,请写出str的p型编码串。例如:字符串122344111可被描述为"1个1、2个2、1个3、2个4、3个1",因此我们说122344111的p型编码串为1122132431;类似的道理,编码串101可以用来描述1111111111;00000000000可描述为"11个0",因此它的p型编码串即为110;100200300可描述为"1个1、2个 0、1个2、2个0、1个3、2个0",因此它的p型编码串为112012201320。

输入

输入仅一行,包含字符串str。每一行字符串最多包含1000个数字字符。

输出

输出该字符串对应的p型编码串。

样例输入

122344111

样例输出

1122132431

C 语言实现

#include <stdio.h>
#include <string.h>// 函数用于生成p型编码串
void pEncoding(char str[]) {int len = strlen(str);int i, j;for (i = 0; i < len; ) {int count = 1;// 统计连续相同字符的个数for (j = i + 1; j < len && str[j] == str[i]; j++) {count++;}// 输出字符个数和字符本身printf("%d%c", count, str[i]);i = j;}printf("\n");
}int main() {char str[1001];// 读取输入字符串scanf("%s", str);pEncoding(str);return 0;
}

C++ 实现

#include <iostream>
#include <string>// 函数用于生成p型编码串
void pEncoding(const std::string& str) {int len = str.length();int i, j;for (i = 0; i < len; ) {int count = 1;// 统计连续相同字符的个数for (j = i + 1; j < len && str[j] == str[i]; j++) {count++;}// 输出字符个数和字符本身std::cout << count << str[i];i = j;}std::cout << std::endl;
}int main() {std::string str;// 读取输入字符串std::cin >> str;pEncoding(str);return 0;
}

Java 实现

import java.util.Scanner;public class PEncoding {// 函数用于生成p型编码串public static void pEncoding(String str) {int len = str.length();int i, j;for (i = 0; i < len; ) {int count = 1;// 统计连续相同字符的个数for (j = i + 1; j < len && str.charAt(j) == str.charAt(i); j++) {count++;}// 输出字符个数和字符本身System.out.print(count + "" + str.charAt(i));i = j;}System.out.println();}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();// 读取输入字符串并调用函数生成p型编码串pEncoding(str);}
}

Python 实现

str_input = input()  # 读取输入字符串result = ""
i = 0
while i < len(str_input):count = 1j = i + 1while j < len(str_input) and str_input[j] == str_input[i]:count += 1j += 1result += f"{count}{str_input[i]}"i = jprint(result)

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐

http://www.ppmy.cn/embedded/142553.html

相关文章

什么是内存对齐?为什么需要内存对齐?

参考【C/C】内存对齐&#xff08;超详细&#xff0c;看这一篇就够了&#xff09;_c内存对齐-CSDN博客 1&#xff09;什么是内存对齐&#xff1f; 内存对齐是一种将数据在内存中的存储位置按照特定规则进行排列的方式。通常&#xff0c;数据会被存储在内存地址是其大小的整数倍的…

第六届国际科技创新学术交流会暨管理科学信息化与经济创新发展(MSIEID 2024)

重要信息 大会官网&#xff1a;msieid2024.iaecst.org &#xff08;点击了解大会&#xff0c;参会等内容&#xff09; 大会时间&#xff1a;2024年12月6-8日 大会地点&#xff1a;中国-广州 大会简介 随着全球化和信息化的不断深入&#xff0c;管理科学、信息化和经济发展…

windows下kafka初体验简易demo

这里提供了windows下的java1.8和kafka3.9.0版本汇总&#xff0c;可直接免费下载 【免费】java1.8kafka2.13版本汇总资源-CSDN文库 解压后可以得到一个文件夹 资料汇总内有一个kafka文件资料包.tgz&#xff0c;解压后可得到下述文件夹kafka_2.13-3.9.0&#xff0c;资料汇总内还…

LabVIEW实现串口调试助手

目录 1、串口通信原理 2、硬件环境部署 3、串口通信函数 4、程序架构 5、前面板设计 6、程序框图设计 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联…

C# 中的设计模式:构建灵活且可维护的应用程序

C#中的设计模式&#xff08;Design Patterns&#xff09;。设计模式是软件开发中常见问题的通用解决方案&#xff0c;它们提供了一种标准化的方法来解决特定的设计问题。通过使用设计模式&#xff0c;可以提高代码的可维护性、可扩展性和复用性。以下是一篇关于C#中常用设计模式…

最大子数组和

给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&#xff…

【NoSQL数据库】Hbase基本操作——数据库表的增删改查

目录 一、Hbase原理 二、HBase数据库操作 三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型&#xff1a; 行键 时间戳 列族&#xff1a;contents 列族&#xff1a;anchor 列族&#xff1a;mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…

【计算机网络】实验 5:IPV4地址的分类地址及划分子网

实验 5&#xff1a;IPV4地址的分类地址及划分子网 一、 实验目的 加深对IPV4地址的分类地址的了解。 加深对IPV4地址的划分子网的了解。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、验证分类IP地址的作用以及了解路由器的基本功能 (1) 第一步&…