TopcoderArchive
Archive
Algorithm problem

NotSubsequence

Problem statement, definition, constraints, and public examples.

Problem Statement

æç¤ºï¼šè¿™é“é¢˜ç›®çš„æè¿°åŒ å«ä¸‹æ ‡ï¼Œåœ¨applet外的显示格式有可能不对。

如果字符串X = X[1]X[2]..X[n] 是字符串Y = Y[1]Y[2]..Y[m]的子串,则说明存在一个序列i满足i1 < i2 < ... < in,并且X[1] = Y[i1], X[2] = Y[i2], ..., X[n] = Y[in]。

给定一个int c和String[] a。把aä¸­æ‰€æœ‰å ƒç´ è¿žæŽ¥èµ·æ¥å¾—åˆ°å­—ç¬¦ä¸²Yï¼Œå ¶ä¸­åªåŒ å«0到c的数字(含0和c)。返回最短字符串Z,Zæ»¡è¶³ä¹ŸåªåŒ å«0到c的数字(含0和c),并且Z不是Yçš„å­ä¸²ã€‚å¦‚æžœæœ‰å¤šä¸ªæ»¡è¶³æ¡ä»¶çš„æœ€çŸ­å­—ç¬¦ä¸²ï¼Œè¿”å›žæŒ‰å­—å ¸åºæœ€å°çš„é‚£ä¸€ä¸ªã€‚

Definition

Class:
NotSubsequence
Method:
getSmallest
Parameters:
int, String[]
Returns:
String
Method signature:
String getSmallest(int c, String[] a)
(be sure your method is public)

Notes

  • 如果A和B是两个同样长度的字符串,则AæŒ‰å­—å ¸åºæ¯”B小说明A和B左起第一个不同处A有一个更小的字符。

Constraints

  • c取值于0到9,含0和9。
  • aåŒ å«1到50ä¸ªå ƒç´ ï¼Œå«1和50。
  • açš„æ¯ä¸ªå ƒç´ åŒ å«1到50个字符,含1和50。
  • açš„æ¯ä¸ªå ƒç´ åªåŒ å«0到c之间的数字,含0和c。
  • açš„æ‰€æœ‰å ƒç´ è¿žæŽ¥èµ·æ¥ï¼Œæœ€å¤šåªåŒ å«500个字符。

Examples

  1. 1
    {"0101"}
    Returns: "000"
    所有可能的长度为1的字符串("0" 和 "1") 以及长度为2的字符串 ("00"、"01"、"10"和"11") 都是 Y = "0101"的子串。有4个长度为3的字符串不是Y的子串:"000"、"100"、"110"和"111"ã€‚å ¶ä¸­æŒ‰å­—å ¸åºæœ€å°çš„æ˜¯"000"。
  2. 2
    {"0101"}
    Returns: "2"
    这个例子同上,但是c = 2。这就造成一个长度为1的字符串("2")不是Y的子串。
  3. 1
    {"0","1","0","1","0"}
    Returns: "111"
  4. 2
    {"0011","22"}
    Returns: "10"
  5. 2
    {"0","01","1220","12"}
    Returns: "100"
Back to all problems