解题报告--删除重复字符

题目:

 

 

流程图:

 

核心代码:

int r=1;
int j,k,l=0;
c[0]=a[0];
for(j=1;j<=i;j++)
{
    r=1;
    for(k=l;k>=0;k--)
    {
        if(a[j]==c[k])
        {
            r=0;
            break;
            }
        }
        
        if(r)
        {
            l++;
            c[l]=a[j];
        }
}
 

解题思路:

如核心代码所示,关键点在于  变量 l 应该初始化为0,并根据新数组存入元素,动态变化。一、减少了运行时间,优化代码。二、避免了不必要的错误。

这样的算法可能不是最简便的,但是容易理解。将原数组元素存入新数组中,并且先行判断,在新数组中是否存在当前所要存入的元素,若否则存入,若存在,则继续循环。

posted @ 2019-12-17 10:24  林艺鸿  阅读(134)  评论(0编辑  收藏  举报