关于字符串
关于字符串求助
一个字符串变换的函数,输入的字符串为英文字母,其中连续出现的次数不超过9次,输出为输入的英文字符+连续出现的次数 ,例如 “ABBCCCC”-> “A1B2C4”。
求大神帮助
------解决方案--------------------
------解决方案--------------------
楼主并没有说用c/c++实现,我就用erlang来实现了,
%% Author: Administrator
%% Created: 2013-10-22
% Description: TODO: Add description to abc
-module(abc).
-author(tiger).
-purpose(test).
-export(staticN/2]).
whatN(H,[H
------解决方案--------------------
T],{ACC,L}) -> whatN( H, T,{ ACC+1 ,L });
whatN(I,[H
------解决方案--------------------
T],{ACC,L})->whatN( I, T,{ ACC,[H
------解决方案--------------------
L ]});
whatN(_I,[],{ACC,L})->{ACC,L}. %%如果要保持输出顺序不变,这里改为{ACC,lists:reverse( L)}.
staticN([],L)->L ;
staticN([H
------解决方案--------------------
T],L)->
{Num,List}=whatN( H,[ H
------解决方案--------------------
T],{ 0,[]}),
if
Num >=2-> staticN(List,[{H,Num}
------解决方案--------------------
L]);
Num<2 ->staticN(List ,L )
end.
=========================================================================
12> abc:staticN([1,2,3,4,2,5,6,6,a,b,e,f,d,e,9,9,y,y,u,4,3,7,9,1],[]).
[{e,2},{y,2},{6,2},{4,2},{3,2},{2,2},{9,3},{1,2}]
一个字符串变换的函数,输入的字符串为英文字母,其中连续出现的次数不超过9次,输出为输入的英文字符+连续出现的次数 ,例如 “ABBCCCC”-> “A1B2C4”。
求大神帮助
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1024
///
///一个字符串变换的函数,输入的字符串为英文字母,其中连续出现的次数不超过9次,输出为输入的英文字符+连续出现的次数 ,例如 “ABBCCCC”-> “A1B2C4”。
///求大神帮助
///
void deal(char * elem,int size)
{
int i, j, tmp;
for (i = 0; i < size; i++) {
for (j = size - 1; j > i; j--) {
if (elem[j] < elem[j-1]) {
tmp = elem[j-1];
elem[j-1] = elem[j];
elem[j] = tmp;
}
}
}
}
int main()
{
int i;
int count = 1;
char temp;
char c_elem[MAX_SIZE];
printf("input \n");
gets(c_elem);
int size = strlen(c_elem);
deal(c_elem,size);
for (i = 0; i < size; i++)
if(c_elem[i]!= c_elem[i+1]){
printf("%c%d", c_elem[i],count);
count = 1;
}
else {
count++;
}
// printf("%c ", c_elem[i]);
return 0;
}
------解决方案--------------------
楼主并没有说用c/c++实现,我就用erlang来实现了,
%% Author: Administrator
%% Created: 2013-10-22
% Description: TODO: Add description to abc
-module(abc).
-author(tiger).
-purpose(test).
-export(staticN/2]).
whatN(H,[H
------解决方案--------------------
T],{ACC,L}) -> whatN( H, T,{ ACC+1 ,L });
whatN(I,[H
------解决方案--------------------
T],{ACC,L})->whatN( I, T,{ ACC,[H
------解决方案--------------------
L ]});
whatN(_I,[],{ACC,L})->{ACC,L}. %%如果要保持输出顺序不变,这里改为{ACC,lists:reverse( L)}.
staticN([],L)->L ;
staticN([H
------解决方案--------------------
T],L)->
{Num,List}=whatN( H,[ H
------解决方案--------------------
T],{ 0,[]}),
if
Num >=2-> staticN(List,[{H,Num}
------解决方案--------------------
L]);
Num<2 ->staticN(List ,L )
end.
=========================================================================
12> abc:staticN([1,2,3,4,2,5,6,6,a,b,e,f,d,e,9,9,y,y,u,4,3,7,9,1],[]).
[{e,2},{y,2},{6,2},{4,2},{3,2},{2,2},{9,3},{1,2}]