[面试题]去除字符串中相邻两个字符的重复

 

 1 ExpandedBlockStart.gif ContractedBlock.gif /**/ /// <summary>
 2InBlock.gif        /// 去除字符串中相邻两个字符的重复 
 3InBlock.gif        /// 
 4InBlock.gif        /// exp.   
 5InBlock.gif        ///    abb -> ab
 6InBlock.gif        ///    abbccaabbcc -> abcabc
 7InBlock.gif        ///    aaabbb -> ab
 8InBlock.gif        /// </summary>
 9InBlock.gif        /// <param name="strInput"></param>
10ExpandedBlockEnd.gif        /// <returns></returns>

11 None.gif          static   string  GetStringOfSingleChar( string  strInput)
12 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
13InBlock.gif            if (strInput == null)
14InBlock.gif                throw new Exception("String cannot be null.");
15InBlock.gif
16InBlock.gif            int Length = 0;
17InBlock.gif            if ((Length = strInput.Length) < 2return strInput;
18InBlock.gif            char[] strArray = strInput.ToCharArray();
19InBlock.gif
20InBlock.gif            int count = 0;
21InBlock.gif            for (int i = 1; i < Length; i++)
22ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
23InBlock.gif                if (strArray[i] != strArray[i - 1]) continue;
24InBlock.gif
25InBlock.gif                char cTemp = strArray[i];
26InBlock.gif                for (int j = i; j < Length - 1; j++)
27InBlock.gif                    strArray[j] = strArray[j + 1];
28InBlock.gif                strArray[Length - 1= cTemp;
29InBlock.gif
30InBlock.gif                if (i + count >= Length) break;
31InBlock.gif                i--;
32InBlock.gif                count++;
33ExpandedSubBlockEnd.gif            }

34InBlock.gif
35InBlock.gif            return new string(strArray , 0 , Length - count);
36ExpandedBlockEnd.gif        }
posted on 2007-04-16 15:21 K3 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/sskset/archive/2007/04/16/715364.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值