posts - 71,  comments - 41,  trackbacks - 0
"aaaaaabbbbccccc" -> "a6b4c5"
void CompressStrInPlace(char* str)
{
    
if ((0 == str) || ('\0' == *str))
    
{
        
return ;
    }


    
char* p = str + 1;
    
char temp[11];
    
int rep = 0;
    
char* sNum = 0;

    
while (*!= '\0')
    
{
        
if (*str != *p)
        
{
            
*(++str) = *p++;
        }

        
else
        
{
            
while (*== *str)
            
{
                
++rep;
                
++p;
            }


            
if (rep < 10)
            
{
                
*(++str) = rep + '0'// 30h
            }

            
else
            
{
                
char* sNum = itoa(rep, temp, 10);

                
while ((*(++str) = *sNum++!= '\0')
                    
/*null*/;
                
--str;
            }


            rep 
= 0;

        }
//if-else

    }
//while

    
*(++str) = '\0';
}
posted on 2006-11-22 12:19 Charles 阅读(1122) 评论(2)  编辑 收藏 引用 所属分类: 面试小算法

FeedBack:
# re: 字符串原地压缩
2006-11-28 22:40 | 李锦俊
解压缩到哪去了?  回复  更多评论
  
# re: 字符串原地压缩
2006-11-29 08:53 | Charles
呵呵,这个只是一道面试题,倒是没想过这个问题,回头有时间写个贴上  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

决定开始写工作日记,记录一下自己的轨迹...

常用链接

留言簿(4)

随笔分类(70)

随笔档案(71)

charles推荐访问

搜索

  •  

积分与排名

  • 积分 - 48795
  • 排名 - 453

最新评论

阅读排行榜

评论排行榜