上次和大家分享了我总结的一些基础的华为算法面试题,今天我又整理了一份华为算法面试题中的字符串操作算法的题目和大家一起分享。喜欢的小伙伴赶紧收藏吧。
题目一:字符串个数统计
字符串个数统计一个很常用的算法。在字符串操作算法中,属于一个比较简单一些的算法题。但是如果进行扩展的话,还是可以难倒一大部分人的。下面开始看题目。
题目:编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~),换行表示结束符,不算在字符里。不在范围内的不作统计。算法的Java实现代码如下所示:
字符串个数统计题目二:字符串反转
字符串翻转其实类似于入栈出栈的过程,后进先出。因此实现时,可以考虑用栈来实现。
题目:写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过)。下面我们写出该问题的Java代码实现方式,如下图:
字符串翻转题目三:句子逆序
句子逆序和字符串翻转还是有一定的区别的,不过原理大致相同。也可以采取入栈出栈的方式。只不过句子是以单词为单位。
题目:将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI”。所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。该问题的Java代码实现如下:
句子逆序题目四:字符串的连接最长路径查询
这个题目看上去是不是感觉很难的样子?其实不难哦,下面给出一道题目你就知道了。
题目:给定n个字符串,请对n个字符串按照字典序排列。
输入描述:输入第一行为一个正整数n(1≤n≤),下面n行为n个字符串(字符串长度≤),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。本道题目的Java代码实现方式如下图:
字符串的连接最长路径查询题目五:合并表记录
这是今天分享的最有难度的一道题目了。也是今天分享的最后一道题目。
题目:数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入:先输入键值对的个数,然后输入成对的index和value值,以空格隔开。输出描述:输出合并后的键值对(多行)。算法代码实现如下图所示:
合并表记录关于字符串算法的分享,今天就到这来了。欢迎收藏哦,说不定哪天面试就能用得上了。喜欢的朋友可以