麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

字符串的距離version1.0

2019-11-14 22:11:27
字體:
來源:轉載
供稿:網友
字符串的距離version1.0
字符串的距離

題目來源:http://www.PRogramfan.com/acm/show.asp?qid=81Problem:設有字符串X,我們稱在X的頭尾及中間插入任意多個空格后構成的新字符串為X的擴展串,如字符串X為“abcbcd”,則字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X的擴展串,這里“□”代表空格字符。 如果A1是字符串A的擴展串,B1是字符串B的擴展串,A1與B1具有相同的長度,那么我們定義字符串A1與B1的距離為相應位置上的字符的距離總和,而兩個非空格字符的距離定義為它們的ASCII碼的差的絕對值,而空格字符與其它任意字符之間的距離為已知的定值K,空格字符與空格字符的距離為0。在字符串A、B的所有擴展串中,必定存在兩個等長的擴展串A1、B1,使得A1與B1之間的距離達到最小,我們將這一距離定義為字符串A、B的距離。 請你寫一個程序,求出字符串A、B的距離。

Input有多組數據,每一組數據第一行為字符串A,第二行為字符串B,A、B均由小寫字母組成且長度均不超過2000,第三行為一個整數K,1≤K≤100,表示空格與其它字符的距離。

Output每組數據一行包含一個整數,表示要求的字符串A、B的距離。

Sample Inputcmcsnmn2Sample Output10

在學習了評論人wanshude_bhr的代碼后,發現其代碼存在一定的問題,對于下列這種情況:字符串A為:ax字符串B為:cbzyK值為:3

程序給出的答案為10,但實際結果為8。因此對于字符串A中i位(從0開始)元素,將其與B中所有元素比較,找出B中滿足Math.abs(a.charAt[i] - b.charAt[j]) < k的元素,并記錄最小的絕對值及其對應的下標j。修改后的程序能夠計算出上述情況的正確答案,但當A、B調換位置或者出現字符串A為azy字符串B為cbx時,程序無法正常運行。代碼如下:

package test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class DistanceOfStrings{    // first step:去除兩個字符串中相同的字母    // second step:去除字符串中距離小于k值的字母    public String deleteChar(String s, int n)    {        int l = s.length();        return s.substring(0, n) + s.substring(n + 1, l);    }}public static void main(String[] args){    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));    System.out.println("Please entry two strings and the value k:");    String a = "";    String b = "";    int k = 0;    int sum = 0;    int min = 0;    int p = 0;    boolean flag = false;    try    {          a = br.readLine().trim();        b = br.readLine().trim();    }    catch (IOException e)    {        e.printStackTrace();      }    try    {          k = Integer.parseInt(br.readLine());    }    catch (NumberFormatException e)    {        e.printStackTrace();      }    catch (IOException e)    {        e.printStackTrace();    }    DistanceOfStrings dos = new DistanceofStrings();    // first step:    for (int i = 0; i < a.length(); i++)    {        for (int j = 0; j < b.length(); j++)        {            if (a.charAt(i) == b.charAt(j))            {                a = dos.deleteChar(a, i);                b = dos.deleteChar(b, j);                i --;                j --;                break;            }          }    }    // second step:    for (int i = 0; i < a.length(); i++)    {        min = k;        for (int j = 0; j < b.length(); j++)        {            if (Math.abs(a.charAt(i) - b.charAt(j)) < min)            {                flag = true;                min = Math.abs(a.charAt(i) - b.charAt(j));                p = j;            }         }        if (flag == true)        {            sum += min;            a = dos.deleteChar(a, p);            b = dos.deleteChar(b, p);            i --;        }    }    sum += (a.length() + b.length()) * k;    System.out.println(sum);}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩视频区| a免费视频| 成人免费福利视频 | 中文字幕22页| 日韩2区 | 91网站在线观看视频 | 黄色男女视频 | 国产精品www | 销魂美女一区二区 | 今井夏帆av一区二区 | 日韩黄网站| 免费淫视频 | 欧美成人午夜 | 成人在线视频在线观看 | 黄色片网站在线免费观看 | 免费看国产 | 成人在线观看一区二区三区 | 超碰在线97国产 | www视频免费观看 | 欧美性受xxxx人人本视频 | 亚洲成人福利网站 | 91色一区二区三区 | 蜜桃视频网站在线观看 | 99国产精品欲a | 久久成人激情视频 | 在线看国产视频 | 亚洲小视频在线观看,com | 精品国产一区二区三区久久久 | 久久久免费观看完整版 | 国产免费乱淫av | 日本中文字幕电影在线观看 | 97中文字幕第一一一页 | 精品国产一区二区三区四区阿崩 | 亚洲精品在线观看网站 | 国产精品久久久久久影视 | 欧美激情猛片xxxⅹ大3 | 色视频一区二区 | 狠狠干天天操 | 天天夜碰日日摸日日澡性色av | 国产精品美女一区二区 | 精品亚洲综合 |