华为机试 - 字符串去重复字节/字符串去连续重复字节

华为2019校招笔试题之处理字符串(python版) 华为2019在线笔试题,现整理如下,以供之后参考 GitHub 题目介绍 ################################################################# ################################################################# ''' 题目描述: -- 对输入字符串检查是否存在非法字符,输出合法字符串(去重)和非法字符串(不去重) -- 对合法字符串循环左移10次,在进行排序输出。(举例:比如字符串"abc",循环左移一次的结果为"bca") 输入描述: (1) 字符串中的字符集合为 立即下载

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:

void stringFilter(const char *pInputStr,long lInputLen, char *pOutputStr);

【输入】 pInputStr:输入字符串

lInputLen: 输入字符串长度

【输出】 pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;

#include <iostream>
#include <climits>
#include <algorithm>
using namespace std;

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{
	int count[256]={0};
	size_t index=0;
	for(int i=0;i<lInputLen;i++)
	{
		if (count[pInputStr[i]]==0)
		{
			count[pInputStr[i]]=1;
			pOutputStr[index++]=pInputStr[i];
		}
	}
}
int main()
{
	long inputLen;
	cin>>inputLen;
	char *str=new char[inputLen]();
	char *strOut=new char[inputLen]();
	for(int i=0;i<inputLen;i++)
		cin>>str[i];
	stringFilter(str,inputLen,strOut);
	cout<<strOut<<endl;
	system("pause");
	return 0;
}

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

压缩规则:

1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".

2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"

 

要求实现函数:

void stringZip(const char*pInputStr, long lInputLen, char *pOutputStr);

 

【输入】 pInputStr: 输入字符串

lInputLen: 输入字符串长度

【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

#include <iostream>
#include <climits>
#include <algorithm>
using namespace std;

void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)
{
	if(pInputStr==NULL||lInputLen==0) return;
	size_t index=0;
	char prev=pInputStr[0];
	int count=1;
	for(int i=1;i<lInputLen;i++)
	{
		if (prev!=pInputStr[i])
		{
			if(count!=1)
				pOutputStr[index++]=count+'0';
			pOutputStr[index++]=prev;
			prev=pInputStr[i];
			count=1;
		}
		else
		{
			count++;
		}
	}
	if(count!=1)
		pOutputStr[index++]=count+'0';
	pOutputStr[index]=prev;
}
int main()
{
	long inputLen;
	cin>>inputLen;
	char *str=new char[inputLen]();
	char *strOut=new char[inputLen]();
	for(int i=0;i<inputLen;i++)
		cin>>str[i];
	stringZip(str,inputLen,strOut);
	cout<<strOut<<endl;
	system("pause");
	return 0;
}


jquery实现去除重复字符串的方法小结 主要介绍了jquery实现去除重复字符串的方法,结合实例形式总结了三种常用的字符串去重操作技巧,需要的朋友可以参考下 立即下载

相关推荐

BQ40Z50R2循环学习实战:量产文件生成与关键状态位解析

本文详细解析了TI BQ40Z50R2电量计循环学习(Golden Learning)的实战流程与量产文件生成方法。重点剖析了updateStatus状态位在充放电静置阶段的常见异常(如卡在0x04或跳至0x0E)及其根本原因,并提供了从环境控制、命令顺序到文件处理的完整避坑指南,帮助工程师高效完成量产配置。

weixin_29170327的博客 214

删去字符串中连续重复字符

码图_删去字符串中连续重复字符

astruggle___的博客 2107

手把手教你用Python分析OpenFAST仿真结果:pyDatView处理.out文件与数据可视化技巧

本文详细介绍了如何使用Python中的pyDatView工具分析OpenFAST仿真结果,包括数据加载、质量检查、时域与频域分析、多工况对比及自动化报告生成。通过优化技巧和可视化方法,帮助工程师高效处理.out文件,提升风机性能分析的准确性和效率。

weixin_29311017的博客 183

字符串去除重复的三种方法

方法三:借助对象的键唯一性,把每个字符串追加到对象中因为对象的键唯一所以里面都是不重复的。方法二:利用indexOf判断字符串是否存在,如果不存在就添加到新字符串中。方法一:利用双层遍历做判断是否重复,如果重复就删除重复的。

qq_36378250的博客 1万+

echarts实现3D地图——map3D

【代码】echarts实现3D地图——map3D。

xiaoququ的博客 7323

手把手教你用Verilog实现MDIO控制器(附完整VHDL代码对比)

本文详细介绍了如何使用Verilog实现MDIO控制器,并提供了与VHDL实现的深度对比。通过解析MDIO协议核心要点,展示Verilog状态机架构设计和关键时序控制逻辑,同时对比VHDL在信号声明、状态机实现和双向端口处理上的差异。适用于以太网硬件设计开发者,帮助掌握MDIO控制器自主实现能力。

weixin_30682415的博客 422

华为机试—字符串去重排序

输入一个字符串,去掉重复出现的字符,并把剩余的字符串排序输出。 #include #include using namespace std; int main(int argc, char *argv[]) { string s; while(cin>>s) { for(int i=0;i<s.size();++i) for(i

芝兰生于深谷,不以无人而不芳 1993

手把手教你解决CentOS sshd启动报错:从权限问题到目录缺失的全套解决方案

本文提供了一套完整的CentOS SSH服务启动故障排查与修复方案。针对sshd启动报错,从systemd日志分析、sshd -t配置测试入手,详细解决了私钥文件权限过宽(如0644错误)和权限分离目录缺失等典型问题,并附带了扩展排查清单,帮助运维人员系统性地定位和解决连接故障。

weixin_29248611的博客 152

[华为机试练习题]15.删除重复字符/删除重复字符串

题目 题目标题: 删除重复字符 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序,并且区分大小写。 详细描述: 接口说明 原型: int GetResult(const char *input, char *output) 输入参数: input 输入的字符串 输出参数(需考虑指针指向的内存区域是否有效)...

SmartSi 638

【eclipse】win 10:eclipse 4.9 下载、安装和汉化(支持中英切换)

目录 一、eclipse下载 二、eclipse安装 三、eclipse在线汉化 四、eclipse离线汉化(推荐) 一、eclipse下载 ①官网下载地址(收费):https://www.eclipse.org/downloads/点击前往下载 ②【推荐】我的百度网盘下载地址(包括离线汉化包):点击下载 提取码:0nfw ③eclipse4.9其他地址下载:http...

顾三殇 —— 博客空间(软件测试) 1万+

关键!C#工业上位机界面设计终极指南:WinForm/WPF怎么选?【工业实战完整版,无废话选型+避坑+落地技巧】

工业上位机UI选型指南:WinForm与WPF核心对比 摘要: 本文基于工业实战视角,对比WinForm与WPF在工业上位机开发中的适用性。WinForm凭借GDI+原生渲染、极致兼容性(完美支持Win7/XP)、低资源占用和硬件底层调用优势,成为老旧工控机、简单监控系统和7×24小时运行设备的首选。WPF则依托DirectX硬件加速、MVVM架构和强大可视化能力,更适合复杂可视化大屏、3D模拟等高端场景及需要长期迭代的大型项目。核心选型原则是:优先考虑稳定性与兼容性,WinForm解决"能不能用

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 729

起立!这份Redis笔记面试官看了高呼空前绝后!,springboot组件面试题

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

2401_84446712的博客 422

OpenCV计算机视觉实战(12)——图像金字塔与特征缩放

图像金字塔技术通过对原始图像按不同分辨率进行多层次表示,不仅能提升计算效率,还能为图像融合、检测与识别提供多尺度特征。高斯金字塔 (Gaussian Pyramid) 用于构建多级低通图像,拉普拉斯金字塔 (Laplacian Pyramid) 则提取各层之间的细节信息。本节将深入介绍如何使用 OpenCV 构建高斯与拉普拉斯金字塔,并以经典的图像融合案例,展示图像金字塔在特征缩放与融合中的强大应用。

qq_30167691的博客 1404

写一个函数,去掉一个字符串中重复的字符,比如将”google”转成”gole”(华为公司)

https://blog.youkuaiyun.com/vincent040/article/details/6902631 最近在刷面试题,做到标题的题目,一时半会儿写不出来,翻看参考答案见如上链接。其中, /*locate the first redundant item and the first common item after it. */ 这一部分的代码,至今没有理解透彻。希望有朋友知道的可以在...

AuvKaixin的博客 2518

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

去掉字符串中重复的字符 --- 华为笔试题

题目如题所示,将 “google” 弄成“gole” 解决代码如下: // strip.c #include #include #define REDUNDANT -1 void strip(char *str) { if(str == NULL) return; int i, j; char *p = str; // mark a

林世霖的技术博客 8144

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为2016研发工程师编程题_字符串去重

题目 思路 HashSet import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); ...

baihehaitangyijiu的博客 247

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

字符串或者字符串数组或者List去除重复字段

purchaserNames = dto.getDefaultPurchaserNames().concat(",").concat(dto.getSetPurchaserNames()); String[] purchaserNamesArray = purchaserNames.split(","); List list = Arrays.asList(purchaserNamesArray); Set purchaserNamesSet = new HashSet(list).

damoneric_guo的博客 293

字符串去重复的几种方法

// 字符串去重复 var str = 'assssdfasddddfaaaasdf' //1.将字符串转成数组去重后,再将所有元素拼接成字符串 // 将字符串转成数组 var arr = str.split('') console.log(arr); // 数组去重 for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i] === arr[j]){ a.

HAI6545的博客 1万+

string去除重复字符两个方法

string去除重复字符两个方法 网上有很多伪方法,只删除了相邻重复字符串,大家警惕! 主要使用list.contains()检测重复。 一直在想本来应该怎样做,因为面试官说了句只用了一层循环,可能这样是比较通用的: 1、charAt遍历String每个字符(第一层循环) 2、charAt遍历StringBuffer每个字符,...

SeanSunnn 2万+

算法 - 小试1 - 去除字符串重复字符

目录 需求描述1 - 去除字符串中相邻重复的字符。 需求描述2 - 去除字符串中所有重复的字符(只保留第一个重复的字符) 需求描述3 - 删除字符串中所有相邻的重复串 需求描述1 - 去除字符串中相邻重复的字符。 代码: public void initJava(){ String str="aabbbccccdddddeeeeeeeeefff234tttdddfffbbbggg"; String result=removeRepeatChar(str); Log

JHDHCBJka的博客 468

关于去除字符串中连续重复字符的两种方法

去除字符串中连续重复字符的两种方法 一、使用正则表达式 quChong("111222333555"); function quChong(str){ let arr=[]; let obj=str.match(/(\d)\1*/g);//这里以数字为例 for(let i=0;i<obj.lengh;i++){ let newArr=obj[i].split(""); arr.push(...

qq_41789548的博客 4270

[转]去掉字符串中重复的字符 --- 华为笔试题

转载:http://blog.youkuaiyun.com/vincent040/article/details/6902631 题目如题所示,将 “google” 弄成“gole” 后来自己修改了下部分代码,代码如下: /* 将 “google” 弄成“gole” */ #include #include #define REDUNDANT -1 void strip

CoCo的专栏 2566

java list 字段去重复_java去除List(字符串数组)中的重复值

去除List中的重复值已经从某处引用或者获得了List类型的值,需要去除重复方法一:效率高List listShare = new LinkedList();listShare.add("aa");listShare.add("bb");listShare.add("bb");listShare.add("aa");listShare.add("cc");ArrayList newst= new ...

weixin_32392867的博客 520

华为机试 - 火星计算器

火星计算器:    火星人使用运算符:@ # $ &    优先级为:@ > # > $ > &        X@Y = (X+1)*(Y+2)    X#Y = (2X+3)*(3Y+4)    X$Y = (3X+11)*(2Y+7)    X&Y = (5X+20)*(4Y+1)        X#Y@Z = X#(Y@Z)        编写火星计算器程序,计算火星

小熊糖否——木子兮的自留地 4769
上一篇: 华为机试 - 最小最大数之和
下一篇: 华为机试 - 计算字符串表达的运算
JerkWisdom
博客等级 码龄14年 70粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值