列表

详情


NC410. 最长特殊子序列(一)

描述

给定两个由小写英文字母组成的的字符串 s 和 t ,请返回这两个字符串的最长特殊子序列的长度。
特殊子序列的定义是:某个字符串的某一个子序列(不一定连续),无法在另一个字符串中找到同样的子序列则称为特殊子序列。
如果没有特殊子序列,则输出-1。
数据范围: ,两个字符串都由小写英文字母组成

示例1

输入:

"nowcoder","nowcoder"

输出:

-1

示例2

输入:

"nowcoder","nawcoder"

输出:

8

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Go 解法, 执行用时: 5ms, 内存消耗: 1448KB, 提交时间: 2022-06-09

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @param t string字符串 
 * @return int整型
*/
func longestUniqueSubsequence( s string ,  t string ) int {
    // write code here
    if s == t {
        return -1
    }
    if len(s)>len(t){
        return len(s)
    }
    return len(t)    
}

Go 解法, 执行用时: 5ms, 内存消耗: 1468KB, 提交时间: 2022-08-05

package main

func longestUniqueSubsequence(s string, t string) int {
	if s == t {
		return -1
	}
	if len(s) < len(t) {
		return len(t)
	}
	return len(s)
}

Go 解法, 执行用时: 5ms, 内存消耗: 1668KB, 提交时间: 2022-08-05

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @param t string字符串 
 * @return int整型
*/
func longestUniqueSubsequence( s string ,  t string ) int {
    // write code here
    if s == t {
        return -1
    }
    if len(s)>len(t) {
        return len(s)
    }
    return len(t)
    
}

Go 解法, 执行用时: 6ms, 内存消耗: 1520KB, 提交时间: 2022-07-25

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @param t string字符串 
 * @return int整型
*/
func longestUniqueSubsequence( s string ,  t string ) int {
    c := len(s)
    if c < len(t) {
        c = len(t)
    }
    
    for i := 0; i < c; i++ {
        if string(s[i]) != string(t[i]) {
            return c
        }
    }
    
    return -1
}

C 解法, 执行用时: 7ms, 内存消耗: 944KB, 提交时间: 2022-05-01

int longestUniqueSubsequence(char* s, char* t ) {
    // write code here
    int len_s = strlen(s);
    int len_t = strlen(t);
    if (len_s == len_t) {
        if(strstr(s, t))//strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串
            return -1;
        else
            return len_s;
    } else {
        return fmax(len_s, len_t);
    }
}

上一题