码迷,mamicode.com
首页 > 其他好文 > 详细

【HackerRank】The Love-Letter Mystery

时间:2014-07-29 17:16:12      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   strong   io   数据   

James找到了他的朋友Harry要给女朋友的情书。James很爱恶作剧,所以他决定要胡搞一下。他把信中的每个单字都变成了回文。对任何给定的字符串,他可以减少其中任何一个字符的值,例如‘d‘可以变成‘c‘,这算是一次操作。(另外,他最多只能将字符的值减少至‘a‘,‘a‘不能再被减少成‘z‘)。找出将给定字符串转换成回文所需的最少操作次数。

输入格式
第一行包含整数 T 代表测试数据的组数。
接着 T 行各包含一个字符串。

输出格式
每个测试数据各输出一行,代表此数据需要的最少操作次数。

取值范围
1 ≤ T ≤ 10
1 ≤ 字符串长度 ≤ 104


题解:很简单的题,开始居然还想DFS=。=

要把某个字符串变成回文,就要把i和L-i上的字符变成一样的,所以只要计算所有的abs(s[i]-s[L-i])的和就可以了。

 1 import java.io.*;
 2 import java.util.*;
 3 import java.text.*;
 4 import java.math.*;
 5 import java.util.regex.*;
 6 
 7 public class Solution {
 8    static int The_Love_Letter_Mystery(String s){
 9        int sum = 0;
10        if(s.length() <= 1)
11            return 0;
12        int start = 0;
13        int end = s.length()-1;
14        while(start<end){
15            sum += Math.abs(s.charAt(start) - s.charAt(end));
16            start++;
17            end--;
18        }
19        return sum;
20    }
21 
22 
23  public static void main(String[] args) {
24      Scanner in = new Scanner(System.in);
25      int t = in.nextInt();
26      for(int i = 0;i < t;i++){
27          String string = in.next();
28          System.out.println(The_Love_Letter_Mystery(string));
29      }
30 
31      
32    }
33 }

 

【HackerRank】The Love-Letter Mystery,布布扣,bubuko.com

【HackerRank】The Love-Letter Mystery

标签:style   blog   http   java   color   strong   io   数据   

原文地址:http://www.cnblogs.com/sunshineatnoon/p/3875594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!