面试经典题用JS函数写出,输出两个字符串最长的公共部分

用JS函数写出,输出两个字符串最长的公共部分,如string 和interesting ,输出他们共同的最长的ing

function find(str1,str2){
                if(str1.length>str2.length){
                    shorter = str2;
                    longer = str1
                }else{
                    shorter = str1;
                    longer = str2;
                }
                for(var subLength = shorter.length;subLength>0;subLength--){
                    for(var i = 0;i+subLength<=shorter.length;i++){
                        var subString =shorter.substring(i,i+subLength);
                            // debugger;
                        if(longer.indexOf(subString)>=0){
                            targetString = subString;
                            return targetString;
                        }
                    }
                }
            }
            find("instritesting","string");
            console.log(targetString);


要在C++中实现输入任意两个字符串S1S2,并输出它们的最长公共前缀,可以按照以下步骤进行: 1. 首先,使用cin分别输入字符串S1和S2。 ```cpp stdstring S1, S2; std::cin >> S1 >> S2; ``` 2. 接下来,定义一个变量prefix并初始化为空字符串,用于保存最长公共前缀。 ```cpp std::string prefix = ""; ``` 3. 使用for循环遍历字符串S1和S2的字符,比较对应位置上的字符是否相等。 ```cpp for (int i = 0; i < S1.length() && i < S2.length(); i++) { if (S1[i] == S2[i]) { prefix += S1[i]; // 将相同的字符添加到最长公共前缀中 } else { break; // 遇到不相等的字符时结束循环 } } ``` 4. 最后,判断最长公共前缀的长度是否为0,如果是,则输出字符串;否则,输出最长公共前缀。 ```cpp if (prefix.length() == 0) { std::cout << "空字符串" << std::endl; } else { std::cout << "最长公共前缀: " << prefix << std::endl; } ``` 完整的代码示例: ```cpp #include <iostream> #include <string> int main() { std::string S1, S2; std::cin >> S1 >> S2; std::string prefix = ""; for (int i = 0; i < S1.length() && i < S2.length(); i++) { if (S1[i] == S2[i]) { prefix += S1[i]; } else { break; } } if (prefix.length() == 0) { std::cout << "空字符串" << std::endl; } else { std::cout << "最长公共前缀: " << prefix << std::endl; } return 0; } ``` 注意:以上代码假设输入的字符串不包含空格。如果需要处理含有空格的字符串,可以使用std::getline函数进行输入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值