0

我是 C++ 的初学者,我正在尝试创建两个字符串

有什么建议吗?

4

2 回答 2

0

在这种情况下,Equals 方法对您没有帮助。使用 charAt() 进行比较。使用两个 for 循环并迭代两个字符串,然后将不匹配的字符添加到一个字符串并最后打印它。前任:

 for(int i=0;i<inputword.length;i++){

       for(int j=0;i<inputword2.length;j++){ 

          if(inputword.chatAt(i)==inputword2.charAt(j)){
               //here write your logic or remove it from your string
          }
      }
  } 
于 2013-10-19T01:54:35.157 回答
0

要计算开头有多少个字符,一个单词“重叠”到第二个单词的结尾:

public static int combinedLength(String s1, String s2) {
    s1 = s1.toLowerCase();
    s2 = s2.toLowerCase();
    for (int i = 1; i < s1.length() && i < s2.length(); i++)
        if (s1.endsWith(s2.substring(0, i+1)) || s2.endsWith(s1.substring(0, i+1)))
            return s1.length() + s2.length() - i;
    return s1.length() + s2.length();
}

如果发现 s1 是否以 s2 的结尾开头或反之亦然,则可以通过在开始/结束处逐步测试更长的字母序列来工作。因为只能有一个这样的匹配,所以找到的第一个匹配返回两个长度之和减去迭代次数的结果。没有匹配返回两个长度的总和。

测试:

combinedLength("super", "perfect") ==> 9
combinedLength("perfect", "super") ==> 9
combinedLength("pencil", "eraser") ==> 12
于 2013-10-19T04:17:57.273 回答