SRM 441 DIVII 250概述及源码(C#)

 

  昨天算是真正体验了一把Topcoder的SRM,北京时间晚上11点开始,寝室10点半就熄灯了,本本还好撑过了coding phase,让我体验了一把cha人的过程。最后被别人cha了,又由于我自己随便cha别人,最终得分-25分...很丢人吧... :)
  coding phase阶段,因为是english,所以花了点时间...虽然把题目看明白了,但是一直没有好思路...先把题目发了,然后再说:

--------------------------------------------------------------------------------------------
Problem Statement
    
If X and Y are two strings of equal length N, then the difference between them is defined as the number of indices i where the i-th character of X and the i-th character of Y are different. For example, the difference between the words "ant" and "art" is 1. You are given two strings, A and B, where the length of A is less than or equal to the length of B. You can apply an arbitrary number of operations to A, where each operation is one of the following:
Choose a character c and add it to the beginning of A.
Choose a character c and add it to the end of A.
Apply the operations in such a way that A and B have the same length and the difference between them is as small as possible. Return this minimum possible difference.
Definition
    
Class:
DifferentStrings
Method:
minimize
Parameters:
string, string
Returns:
int
Method signature:
int minimize(string A, string B)
(be sure your method is public)

Constraints
-
A and B will each contain between 1 and 50 characters, inclusive.
-
A and B will both contain only lowercase letters ('a'-'z').
-
The length of A will be less than or equal to the length of B.
Examples
0)

    
"koder"
"topcoder"
Returns: 1
You can prepend "top" to "koder" and you'll get "topkoder". The difference between "topkoder" and "topcoder" is 1.
1)

    
"hello"
"xello"
Returns: 1
A and B already have the same length so you cannot add any characters to A.
2)

    
"abc"
"topabcoder"
Returns: 0

3)

    
"adaabc"
"aababbc"
Returns: 2

4)

    
"giorgi"
"igroig"
Returns: 6
--------------------------------------------------------------------------------------------

 

  这次就不给出翻译了,文章很容易读懂...但是我虽然读明白了,但是被这句话搞懵了..

You can apply an arbitrary number of operations to A, where each operation is one of the following:
Choose a character c and add it to the beginning of A.
Choose a character c and add it to the end of A.

 

  大意是,可以在A字串的前后各加任意个字符,使得两个字串长度相等,且相似度要尽可能小。

 

  一直没想到合适的算法,今天早上起来看了别人的代码,才恍然大悟...其实就是让你在字串B中截取A与字串长度相等的字串,然后返回使得与A字串相似度最小的数值...没想到这么容易...我昨天差点还使用枚举了,话说还好没那么写...

下面给出我刚写的源码:

 

 

 

 

  虽然本次只得了-25分,但是我的Rating值为606,也不知道这个值是怎么算的,是高还是低,如果我下次再得200分的话..不就可以升一级了?呵呵..

  也不知道下次的SRM是什么时候,我还想参加咯,蛮有意思的..

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值