zoukankan      html  css  js  c++  java
  • HDU 2895 编辑距离

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    char str1[100005],str2[100005];
    bool vis[100005];
    int main(){
    
        while(scanf("%s",str1)!=EOF){
        getchar();
        memset(str2,0,sizeof(str2));
        memset(vis,false,sizeof(vis));
        scanf("%s",str2);
        getchar();
        int len1=strlen(str1);
        int len2=strlen(str2);
        int flag=0;
        int len;
        if(len1>len2){
            flag=1;
              len=len1-len2;
            }
        else if(len1==len2){
            flag=2;
              len=0;
            }
        else if(len1<len2){
            flag=3;
              len=len2-len1;
            }
        int End=0;
        int temp;
          for(int i=len2-1;i>=0;i--){
                temp=0;
              for(int j=0;j<len1;j++){
                if(str2[i]==str1[j]&&!vis[j]){
                    End++;
                    vis[j]=true;
                    temp=1;
                    break;
                }
              }
             if(temp==0)
                break;
          }
    
    
        if(flag==1){
            for(int i=0;i<len;i++){
                printf("d
    ");
            }
            for(int i=0;i<len2;i++){
                printf("m %c
    ",str2[i]);
            }
           
    
        }
    
        else  if(flag==2){
            for(int i=0;i<len2;i++)
                printf("m %c
    ",str2[i]);
           
        }
    
        else if(flag==3){
            for(int i=0;i<len;i++){
                printf("a %c
    ",str2[i]);
            }
            for(int i=len;i<len2;i++){
                printf("m %c
    ",str2[i]);
            }
           
    
        }
        memset(str1,0,sizeof(str1));
        }
       return 0;
    }
    E - Edit distance
    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

    Description

    Given a string, an edit script is a set of instructions to turn it into another string. There are
    four kinds of instructions in an edit script:
    Add (‘a’): Output one character. This instruction does not consume any characters
    from the source string.
    Delete (‘d’): Delete one character. That is, consume one character from the source string and output nothing.
    Modify (‘m’): Modify one character. That is, consume one character from the source string and output a character.
    Copy (‘c’): Copy one character. That is, consume one character from the source string and output the same character.
    Now, We define that A shortest edit script is an edit script that minimizes the total number of adds and deletes.
    Given two strings, generate a shortest edit script that changes the first into the second.


     

    Input

    The input consists of two strings on separate lines. The strings contain only alphanumeric
    characters. Each string has length between 1 and 10000, inclusive.
     

    Output

    The output is a shortest edit script. Each line is one instruction, given by the one-letter code of the instruction (a, d, m, or c), followed by a space, followed by the character written (or deleted if the instruction is a deletion).

    In case of a tie, you must generate shortest edit script, and must sort in order of a , d, m, c.
    Therefore, there is only one answer.
     

    Sample Input

    abcde xabzdey
     

    Sample Output

    a x a a m b m z m d m e m y
     
  • 相关阅读:
    MVC把表格导出到Excel
    MVC借助Masonry实现图文瀑布流
    MVC Ajax Helper或jQuery异步方式加载部分视图
    MVC使用Entity Framework Code First,用漂亮表格显示1对多关系
    MVC使用jQuery从视图向控制器传递Model的2种方法
    MVC使用AdditionalMetadata为Model属性添加额外信息
    MVC日期格式化的2种方式
    MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦
    MVC使用StructureMap实现依赖注入Dependency Injection
    通过扩展jQuery UI Widget Factory实现手动调整Accordion高度
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/4671300.html
Copyright © 2011-2022 走看看