讨论/技术交流/求助丨回文数变换(360笔试题)/
求助丨回文数变换(360笔试题)

求助!!!

  最近笔试遇到了一个算法题,不会写,也没找到同类型的题。希望各位路过的大佬,可以帮帮我这个菜鸡。

题目

  所谓回文数就是一个数字,从左边读和从右边读的结果都是一样的,例如12321。
  现在有一个只包含1、2、3、4的数字,你可以通过在任意位置增加一位数字或者删除一位数字来将其变换成一个回文数。但是增加或删除不同数字所需要的代价是不一样的。
  已知增加和删除每个数字的代价如下:

  • 增加一个 1,代价:100;删除一个 1,代价:120。
  • 增加一个 2,代价:200;删除一个 2,代价:350。
  • 增加一个 3,代价:360;删除一个 3,代价:200。
  • 增加一个 4,代价:220;删除一个 4,代价:320。

  请问如何通过最少的代价将一个数字变换为一个回文数。当然,如果一个数字本身已经是一个回文数(包括一位数,例如:2),那么变换的代价为 0。

输入描述
  单组输入。输入一个由1、2、3、4组成的正整数,正整数位数<=100位。【提示:采用字符串输入】

输出描述
  输出一个整数,表示将输入数字变换为一个回文数所需的最少代价。

样例

  输入:12322

  输出:300

提示

  增加一个 1 并增加一个 2,将输入正整数变为 1223221 或者 2123212,所需代价最小,为:100+200=300。

3

大佬,是不是今天下午的360笔试啊,这道题是不是AC了。

展开全部 19 讨论