当前位置: 首页 > 知识库问答 >
问题:

检查两个字符串是否以相同的顺序包含相同的字符

皇甫树
2023-03-14

"给定两个字符串s和t,编写一个函数来检查s是否包含t的所有字符(顺序与字符串t相同)。返回true或false。递归不一定。这是我用java写的代码片段。问题是输入: string1="st3h5irteuyarh!"和string2="shrey"它应该返回TRUE,但它返回FALSE。那是为什么?"

public class Solution {
    public static String getString(char x)  
    { 
       String s = String.valueOf(x); 
       return s; 
    }  

    public static boolean checkSequence(String s1, String s2) 
    {

        String a = getString(s1.charAt(0));  
        String b = getString(s2.charAt(0)); 

        for (int i = 1; i < s1.length(); i++) 
            if (s1.charAt(i) != s1.charAt(i - 1))  
            { 
                a += getString(s1.charAt(i)); 
            } 

        for (int i = 1; i < s2.length(); i++) 
            if (s2.charAt(i) != s2.charAt(i - 1))  
            { 
                b += getString(s2.charAt(i)); 
            } 

        if (!a.equals(b)) 
            return false; 

        return true; 

    }
}

共有3个答案

何睿范
2023-03-14

这可能就是你要找的东西

public class Solution {
  public static boolean checkSequence(String s1, String s2) {
    for(char c : s2.toCharArray()) {
      if(!s1.contains(c+"")) {
        return false;
      }
      int pos = s1.indexOf(c);
      s1 = s1.substring(pos);
    }
    return true;
  }
}
邵麒
2023-03-14

在代码中我可以看到两个问题

1for(int i=1; i

2if(s1.字符(i)!=s1。charAt(i-1))这里,您正在比较另一个循环中相同字符串的字符s1,情况也是如此

请先搞定这些,然后再问

谢高峯
2023-03-14

这是一个解决方案:

public class Solution {
    public static String getString(char x)  
    {

        String s = String.valueOf(x); 
        return s; 
    }

    public static boolean checkSequence(String s1, String s2) 
    {

        String a = getString(s1.charAt(0));  
        String b = getString(s2.charAt(0)); 

        int count = 0;

        for (int i = 0; i < s1.length(); i++)
        {
            if (s1.charAt(i) == s2.charAt(count))  
            { 
                count++;
            } 
            if (count == s2.length())
                return true;
        }

        return false; 
    }
} 
  • 在位置计数处,将字符串s1的每个字符与字符串s2的一个字符进行比较。
  • 如果匹配计数增加:count
  • 如果count的长度为字符串2,则所有字符都匹配,并返回true

 类似资料:
  • 所以基本上我必须检查另一个字符串是否有相同顺序的相同字符。 所以如果血液中的字母和冠状病毒的顺序相同,就像第二个一样,我必须打印阳性。在Java如何做到这一点?提前道谢。

  • 本文向大家介绍C ++中的元字符串(检查一个字符串交换后两个字符串是否可以相同),包括了C ++中的元字符串(检查一个字符串交换后两个字符串是否可以相同)的使用技巧和注意事项,需要的朋友参考一下 在本节中,我们将看到如何检查两个字符串是否为元字符串。元字符串是非常相似的那些字符串。如果我们在一个字符串中交换两个元素,那么它将与另一个字符串匹配。假设两个字符串是“ HELLO”和“ OELLH”,则

  • 我有一个任务,检查两个html标签是否具有相同的含义。就像下面的两个:虽然属性本身以不同的顺序出现,但它们被表示为相同的含义,因此它们应该被归类为相同的。 另一个棘手的事情是注意下的属性处于相同的情况:不同的顺序但相同的含义。 我能想到的方法是为每个人将它们的每个属性推送到一个数组中并对其进行排序,并检查数组是否相同,但我如何处理那些“嵌套”的属性。我只是想不出一个可行的解决方案。 我该怎么做?有

  • 本文向大家介绍检查字符串的两半在Python中是否具有相同的字符集,包括了检查字符串的两半在Python中是否具有相同的字符集的使用技巧和注意事项,需要的朋友参考一下 我们必须检查在Python中,字符串的两半是否具有相同的字符集。两半中字符的频率必须相同。如果字符串的长度是奇数,请忽略中间的字符并检查其余字符。请按照以下步骤编写程序代码。 算法 让我们编写代码。 示例 输出结果 如果运行上述程序

  • 字符串池是否可以包含两个值相同的字符串??

  • 嗨,我正在尝试解决Udemy练习:编写一个名为hasSharedDigit的方法,其中包含int类型的两个参数。 每个数字应在10(含)-99(含)之间。如果其中一个数字不在范围内,则该方法应返回false。 如果两个数字中都有数字,例如12和23中的2,则该方法应返回true;否则,该方法应返回false。 我一直在得到真实,而有共享数字(9,99)我无法发现为什么.. }