字符串过滤

一、题目描述(60分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);

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

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例 
输入:“deefd”        输出:“def”
输入:“afafafaf”     输出:“af”
输入:“pppppppp”     输出:“p”

main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出
当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<iostream>
 4 #include<string.h>
 5 using namespace std;
 6 void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
 7 {
 8     int b[26],i,j;
 9     j = 0;
10     for(i=0; i < 26; i++)
11         b[i] = 0;
12     for(i=0; i < lInputLen; i++)
13         if(!b[pInputStr[i] - ‘a‘])
14             {
15                 pOutputStr[j++] = pInputStr[i];
16                 b[pInputStr[i] - ‘a‘]++;
17             }
18           pOutputStr[j] = ‘\0‘;
19     printf("%s\n", pOutputStr);
20
21 }
22
23 int main()
24 {
25     char s[40],s1[40];
26     char *s2 = (char*)malloc(sizeof(char) * 40);
27     while(scanf("%s",s))
28     {
29         stringFilter(s,strlen(s),s1);
30
31     }
32
33 }

时间: 2025-01-05 00:43:28

字符串过滤的相关文章

华为机试—字符串过滤

题目:字符串过滤 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉. 比如字符串"abacacde"过滤结果为"abcde". 要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); [输入] pInputStr:  输入字符串 lInputLen:  输入字符串长度 [输出]

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

这是华为2013的一个机试题,会好半天才想出来,用了三个for循环,可能有点繁琐,但只要慢慢看还是好理解的, 题目: 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉. 比如字符串"abacacde"过滤结果为"abcde". #include<stdio.h> #include<string.h> void main() { char a[]="aba

字符串过滤--华为笔试

一.题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉.比如字符串“abacacde”过滤结果为“abcde”. 要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); [输入] pInputStr:  输入字符串            lInputLen:  输入字符串长度       

iOS字符串过滤字符--NSCharacterSet

OC中可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号. 首先定义一个NSCharacterSet, 包含需要过滤的特殊符号, NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/::()¥「」".[]{}#%-*+=_\\|~<>$€^•'@#$%^&*()_+'\""]; 这里既要包含全角也要包含半角字符

sphinx 字符串过滤

sphinx 不支持字符串作为属性过滤.要使用字符串进行过滤可以使用下面的两者方法进行解决:属性查询 需要在sphinx配置文件中定义文本字段,当查询索引时,参考其字段.sphinx配置如下: SELECT id, user_type \ FROM userssql_field_string = user_type 在PHP语言中,这么使用: $matches = $this->sphinxClient->Query('@user_type "^admin$"'); 全文搜

asp.net 字符串过滤

/// <summary> /// 去除HTML标记 /// </summary> /// <param name="Htmlstring">包括HTML的源码</param> /// <returns>已经去除后的文字</returns> public static string GetNoHTMLString(string Htmlstring) { //删除脚本 Htmlstring = Regex.Repl

字符串过滤标签

package com.xz.cxzy.utils; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HtmlUtil { private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式 private static 

Python 字符串过滤

需求: str1 = " """<div class="m_wrap clearfix"><ul class="clearfix"><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><b

字符串过滤 ord(),translate()

ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常. translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中. '''>