PTA——删除重复字符

PTA

7-60 删除重复字符

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 85
 4
 5 int main() {
 6     int t,i,j,m=0,flag;
 7     char original[N],target[N];
 8     gets(original);
 9     for(i=0; i<strlen(original); i++) {
10         flag = 0;
11         t = original[i];
12         //判断字符是否在目标数组中
13         for(j=0; j<i; j++) {
14             if(original[j] == t) {
15                 flag = 1;
16                 break;
17             }
18         }
19         if(flag==0) {
20             target[m] = t;
21             m++;
22         }
23     }
24     for(i=1;i<m;i++){
25         t = target[i];
26         j = i-1;
27         while(j>=0 && t<target[j]){
28             target[j+1] = target[j];
29             j--;
30         }
31         target[j+1]=t;
32     }
33     for(i=0; i<m; i++) {
34         printf("%c",target[i]);
35     }
36 }

分析:

1、注意字符串长度,original用了gets()接收,可以通过strlen()得到长度,但target不行,要单独定义变量记录长度

2、另一种思路是先排序再输出不重复的字符

原文地址:https://www.cnblogs.com/cxc1357/p/10796865.html

时间: 2024-11-11 12:10:13

PTA——删除重复字符的相关文章

删除重复字符

删除重复字符 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串.需要保证字符出现的先后顺序,并且区分大小写. 详细描述: 接口说明 原型: int GetResult(const char *input, char *output) 输入参数: input     输入的字符串 输出参数(需考虑指针指向的内存区域是否有效): output    输出的字符串 返回值: 0         成功 -1        失败及异常 举例: 输入: abadcba

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

题目 题目标题: 删除重复字符 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串.需要保证字符出现的先后顺序,并且区分大小写. 详细描述: 接口说明 原型: int GetResult(const char *input, char *output) 输入参数: input 输入的字符串 输出参数(需考虑指针指向的内存区域是否有效): output 输出的字符串 返回值: 0 成功 -1 失败及异常 举例: 输入: abadcbad,那么该单词中红色部分的

华为OJ测试题目——删除重复字符

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

C语言-删除重复字符

//实现对一个字符串的删除重复的字符,并输出删除后的字符串,(如从”testroadeasy”中输出”tesroady”) Action(){    char *str="testroadeasy";    char *desc; desc=(char *)malloc(100*sizeof(char)); fun_delete(str,desc); lr_output_message("%s",desc); return 0;}int fun_delete(cha

C#删除字符串中重复字符的方法

本文实例讲述了C#删除字符串中重复字符的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: #region 删除重复字符 string s = "sdfffffsrlkjesgljfdg03940864e5=_0R9DTGR98YUI\\|||'\\???fdf///"; Response.Write("<br/>String:" + s + "<br/>Result:"); IEnumerable<char

从键盘输入一个字符串,按照字符顺序从小到大进行选择排序,并要求删除重复的字符

/* 从键盘输入一个字符串,按照字符顺序从小到大进行选择排序,并要求删除重复的字符 思路: 选择排序:比较找到最小的下标,和第i个交换位置. 删除重复字符:用k计算不相等的个数,替换. */ #include <stdio.h> #include<string.h> void insetsort(char *str,int n){ int i,j,min,temp,k; char sh[n]; for(i=0;i<n;i++){ min=i; for(j=i+1;j<n

leetcode——Remove Duplicates from Sorted List II 删除排序字符串中重复字符(AC)

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3

Leetcode(无重复字符的最长子串;删除排序链表中的重复元素II;加一;最后一个单词的长度;相同的树)

1.无重复字符的最长子串 这题需要用到滑动窗口法,有许多问题都可以考虑使用滑动窗口法:https://www.geeksforgeeks.org/tag/sliding-window/ 因为用c++,所以用到set容器:std::count 2.删除排序链表中的重复元素II 3.加一 1 class Solution { 2 public: 3 vector<int> plusOne(vector<int>& digits) { 4 int n=digits.size()-

C语言 &#183; 删除重复元素

算法提高 11-2删除重复元素 时间限制:10.0s   内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内部使用指针操作. 样例输入 1223445667889 样例输出 13579 样例输入 else 样例输出 ls 数据规模和约定 字符串数组最大长度为100. 1 /* 2 思路: 3 将字符串存入字符数组a中,设将值拷贝给数组b,遍历b的每个元 4 素,与a中的每个元素比较,有相同则b中对应元