题目一:
给定一个字符串str,返回其统计字符串,例如String s="aaabbadddffc";其统计字符串形式为”a_3_b_2_a_1_d_3_f_2_c_1“。
最后一组总是要额外添加,且在这里形式较之前的在最后少了一个”_“.
public String countAndSay(String s)
{
if(s == null||s.length() == 0)
return s;
String result="";
char pre=s.charAt(0);
int count=1;
for(int i=1;i<s.length();i++)
{
if(s.charAt(i) == pre)
{
count++;
}else
{
result=result+pre+"_"+count+"_";
pre=s.charAt(i);
count=1;
}
}
//最后一个总是加不上
result=result+pre+"_"+count;
return result;
}
题目二:
给定一个字符串的统计字符串,再给定一个整数,返回原始字符串上该整数上的字符。
统计字符串形式如”a_3_b_2_a_1_d_3_f_2_c_1“, 发现分割分为"_",利用split("_")函数划分后便容易处理。
public String function(String cstr,int k)
{
String[] strs=cstr.split("_");
//得到的矩阵为[a, 3, b, 2, a, 1, d, 3, f, 2, c, 1]
int sum=0;
for(int i=1;i<strs.length;i+=2)//index为奇数是的字符串代表个数。
{
sum+=Integer.valueOf(strs[i]);//通过Integer.valueOf()将字符串转化为整数
if(sum > k)
{
return strs[i-1];//返回所求字符
}
}
return null;
}