`
vcdemon
  • 浏览: 19451 次
社区版块
存档分类
最新评论
  • djx410249: 简单的自己想了几个数字测试了下,发现这个数会在经过几次跳动之后 ...
    3n+1
  • I白I: 怎么回事,好多字都卡在外面了 不显示。。。还要查看源代码看内容 ...
    3n+1

字符串的完美度

    博客分类:
  • 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);


答题说明:
main函数用于方便自行编译,可不完成。
 
 
首先,在做题目之前,我得吐槽一个答题潜规则.
Code 1:

import java.util.Arrays;

public class Test {
    // 该数组存放字符串中某个字母出现的次数,如:array[0]表示a的个数,array[1]表示b的个数,其余依此类推
    static int[] array = new int[26];
    // 该变量存放完美度
    static int sum = 0;

    public static int perfect(String s) {
        s = s.toLowerCase();
        char[] ch = s.toCharArray();
        for (int i = 'a'; i <= 'z'; i++) {
            for (int j = 0; j < ch.length; j++) {
                if (ch[j] == i) {
                    array[i - 97]++;
                }
            }
        }
        Arrays.sort(array);
        for (int i = 0; i < array.length; i++) {
            array[i] = array[i] * (i + 1);
            sum = array[i] + sum;
        }
        return sum;
    }

    public static void main(String[] args) {
        String s = "DAD4538568&^%&^$$$*(\\][[";
        int sum = perfect(s);
        System.out.println(sum);
    }
}

 

Code 1在本地测试是正常的,但是为什么提交之后不通过呢? 这就涉及到了一个答题的潜规则:Line03-Line05是不可以定义全局变量的.
 
 
Code 2:

import java.util.Arrays;

public class Test {

    public static int perfect(String s) {
        // 该数组存放字符串中某个字母出现的次数,如:array[0]表示a的个数,array[1]表示b的个数,其余依此类推
        int[] array = new int[26];
        // 该变量存放完美度
        int sum = 0;
        s = s.toLowerCase();
        char[] ch = s.toCharArray();
        for (int i = 'a'; i <= 'z'; i++) {
            for (int j = 0; j < ch.length; j++) {
                if (ch[j] == i) {
                    array[i - 97]++;
                }
            }
        }
        Arrays.sort(array);
        for (int i = 0; i < array.length; i++) {
            array[i] = array[i] * (i + 1);
            sum = array[i] + sum;
        }
        return sum;
    }

    public static void main(String[] args) {
        String s = "DAD4538568&^%&^$$$*(\\][[";
        int sum = perfect(s);
        System.out.println(sum);
    }
}

 
像Code 2这样提交一次就可以成功通过提交了.
 
其实还有别的一些答题规则,实在是有些摸不着头脑.

分享到:
评论

相关推荐

    ffgrep:可扩展的近似字符串匹配-研究论文

    我们提出了一种将字符串搜索重铸为多重卷积问题的新方法,然后利用高效的快速傅立叶卷积技术。 这种我们称为 ffgrep 的方法计算并缓存目标语料库的频谱,大大降低了后续搜索的成本。 与其他方法一样,该算法具有令...

    锐商企业CMS 3.8.zip

    SEO性能出众,支持多国语言(多语种并行创作),独创的前端编辑系统(FrEE),直接在最终页面上组织创作内容,编译级主题模板机制,无需编码实现主题模板定制,支持企业授权内容保护,内建101条网站完美度指标。...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    1、原生JavaScript实现字符串长度截取 2、原生JavaScript获取域名主机 3、原生JavaScript清除空格 4、原生JavaScript替换全部 5、原生JavaScript转义html标签 6、原生JavaScript还原html标签 7、原生JavaScript时间...

    自用Vs2010/2012 高对比度高清配色文件

    自已根据一个老外的配色进行修改的一款高对比度的VS配色方案。 优点:类名、方法、属性等 都有不同颜色进行区分。界面更加易读,更容易定位。...各种类、方法、字符串等 都标识的非常清晰 一目了然,高对比度。

    C/C++面试大全

     试题1字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界;  对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy...

    BusinessSkinForm VCL v3.36 汉化版

    主要汉化了bsconst.pas、bscalendar.pas、bsDialogs.pas、bsSkinPrinter.pas、bsSkinShellCtrls.pas等5个unit文件,对上述5个unit文件中的英文字符串进行了汉化,并对各个对话框中的组件大小、位置按照宋体、字体...

    模拟精灵2005 v6.85

    ⑶向任意程序循环发送字符串.可自动插入编号. ⑷使用apeml、lascript编写模拟程序实现强大的功能 ⑸可模拟人工进行任意的可定制的循环重复操作. ⑹支持抓点、抓图、读写内存,可控制进程、窗口.. ⑺可自动临控,...

    64套网页特效,表白,做特效,个人简历专属,JS特效合集,JavaScript网页特效案例教程PPT,几乎一毛/每个不到

    字符串操作 字符云 工作簿名称.xls 延时菜单 推拉门改进 搜狐辩论投票 搜索自动补全 摇奖 擦除 放大镜 数字逐一停止.html 数组 数组去重.html 无缝切换 日历插件 日历生成 日历联动 模拟扔物体 滚动title.html 瀑布...

    c/C++面试题大全--96页

     试题1字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界;  对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy...

    Winrar 5.01 简体中文 完美 破解版

    a) "查找" 命令在查找 .7z 压缩文件中的文本字符串时无效; b) 当打开加密文件名的 RAR 5.0 中的同样加密文件名的 RAR 5.0 文件时,WinRAR 会错误地报告密码不正确的消息。这个错误只有在内部和外部压缩文件的密码...

    Java范例大全 源码

    首先,全书以Java开发环境搭建开篇,循序渐进地介绍了Java语法的方方面面,不仅包括变量、语句、字符串、数组、类、集合、面向对象等必备的基础语法,而且还涵盖异常处理与反射机制、I/O文件操作、线程、数据库操作...

    py_beginners:小型python项目,无需使用框架或库

    将度转换为弧度 Djikstra最短路径算法的解决方案 提供给定数量的折扣输出后的价格 折扣计算器 距离函数可测量两点之间的差异 逆向双向链表的程序 根据用户偏好对给定的输入字符串进行加密/解密 计算欧几里得距离

    Delphi7.完美经典

    6-4-6 字符串运算符 6-4-7 位逻辑运算符 6-4-8 运算符优先级 6-5 流程控制 6-5-1 语句的基本概念 6-5-2 表达式语句(Expression-Statement) 6-5-3 流程控制语句 6-5-4 可视化程序与嵌套程序 6-6 数组与指针 ...

    实现了图片背景(换肤)、外观定制、排序、拖拽功能于一身的CListCtrl(包括内置的CHeaderCtrl)的可复用类及其Demo程序

    7、ListCtrl实现排序功能(升序或降序,字符串或数字),选择某列(即按下某列表头)时,先升序排列,再次按下该列表头时,变为降序,再按,又升序,如此反复。同时,列表头中的排序标志相应变化; 8、ListCtrl实现...

    C语言FAQ 常见问题列表

    previous up contents next C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日... o 8.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。 ...

    AdS / dCFT的量子检查

    我们建立了在N $$ \ ... 最后,我们明确评估BPS真空状态的单点函数的单环校正,并找到与早期字符串理论预测的完美一致性。 在超对称性和共形对称性都被破坏的情况下,这构成了对规范重力对偶性的高度简单的测试。

    欧拉公式求圆周率的matlab代码-py_beginners:小型python项目,无需使用框架或库

    生成给定字符串的所有旋转 查找给定数组中的字谜 应用程序 程序检查该号码是否为阿姆斯壮号码 Python中的二进制搜索程序 提供给定二进制数的等效十进制输出 地震信息的API使用者 将给定的摄氏温度转换为华氏度单位 ...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    Q.js:移动端框架,提供了手势触摸支持,DOM操作,事件队列

    Q.jsQ.js适用于移动端web开发,和目前主流的js框架比,主要的优势是轻量级,为移动开发而生,完美的touch事件支持。Q.js的插件扩展是以对象字面...解析json字符串$.parse('传入需要解析的json字符串');扩展$.fn.'扩展的

    BussinessSkinForm皮肤控件

    BusinessSkinForm VCL v3.36完美汉化版 根据BusinessSkinForm VCL v3.36英文版源码汉化...的英文字符串进行了汉化,并对各个对话框中的组件大小、位置按照宋体、字体高度14象素进行了调 整,修正了英文版中的部分bug。

Global site tag (gtag.js) - Google Analytics