zoukankan      html  css  js  c++  java
  • Java中字符串的完美度

        广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,疯狂软件年终钜惠,报名java就业班,免费赠送基础班,名额有限,本月火热报名中,欢迎有志之士咨询疯狂java官网。

      题目如下:

      我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同, 而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。 现在给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。 函数头部 C int perfect(const char *s); C++

      int perfect(const string &s); java public static int perfect(String s);

      思想就是对字符串中的字母进行统计,其中大小写忽略;

      while(s[i] != '')

      {

      index = s[i] - 'A';

      if(index >= 32)

      index -= 32;

      count[index]++;

      i++;

      }

      建立数组s[26],下标分别对应‘A','B'...’Z',若是小写字母的话-‘A'后下标>=32,减去即可(根据ASCII值操作);

      将字母发生的个数统计出来后,进行排序(这是升序,降序也可)

      qsort(count, 26, sizeof(int), comp);

      最后我们计算亲密度即可,由于是升序,所以亲密度也是由1-26;这样亲密度最大

      for(i = 0; i < 26; i++)

      {

      value += count[i] * (i + 1);

      }

      这样完美的亲密度就出来了:

      #include

      #include

      int comp(const void *a,const void *b)

      {

      return *(int *)a-*(int *)b;

      }

      int perfect(const char *s)

      {

      int i = 0;

      int index = 0;

      int value = 0;

      int count[26] = {0};

      while(s[i] != '')

      {

      index = s[i] - 'A';

      if(index >= 32)

      index -= 32;

      count[index]++;

      i++;

      }

      qsort(count, 26, sizeof(int), comp);

      for(i = 0; i < 26; i++)

      {

      value += count[i] * (i + 1);

      }

      return value;

      }

      int main()

      {

      printf("%d", perfect("dad"));

      return 0;

      }

      疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!疯狂java培训中心地址:广州天河区车陂沣宏大厦3楼。

      疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。疯狂软件开设了java课程,ios课程,android课程,为你提供一个学习java技能的好机会,疯狂软件特大优惠活动,加疯狂软件微信号(疯狂软件),抢优惠,优惠100元+赠送iOS教材一本 详情请看疯狂java培训官网。IT从业着仍是社会所需要的高端人才,广州疯狂软件之力于培养企业所需要的中高端IT人才,让你成为备受企业青睐的人才。

  • 相关阅读:
    推荐系统相关算法
    特征的生命周期
    数学知识索引
    蓄水池(Reservoir_sampling)抽样算法简记
    数赛刷题代码学习及课程学习链接
    逻辑回归(LR)总结复习
    我的面试问题记录
    开发中遇到的一些问题
    K-Means聚类和EM算法复习总结
    常见概率分布图表总结
  • 原文地址:https://www.cnblogs.com/gojava/p/3510672.html
Copyright © 2011-2022 走看看