题目描述:
在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数:
int delete_sub_str(const char *str, const char *sub_str, char *result_str)
【输入】 str:输入的被操作字符串
sub_str:需要查找并删除的
方案一:
package cn.com.huawei;
public class HWTest
{
public static void main(String[] args)
{
System.out.println(new SWTest().deleteSubStr("abc123dedf123", "123"));
}
public String deleteSubStr(String str,String sub_str){
assert(str==null);
assert(sub_str==null);
int count=0;
while (str.indexOf(sub_str)>=0)
{
str=str.substring(0,str.indexOf(sub_str))+str.substring(str.indexOf(sub_str)+sub_str.length(),str.length());
count++;
}
return str+"_"+count;
}
}
方案二:
package cn.com.huawei;
public class TestReplace
{
public static void main(String[] args)
{
System.out.println(new TestReplace()
.deleteSubStr("abc123edf123", "123"));
}
public String deleteSubStr(String str, String sub_str)
{
assert (str == null);
assert (sub_str == null);
int count = 0;
while (str.contains(sub_str))
{
str = str.replaceFirst(sub_str, "");
count++;
}
str = str + "_" + count;
return str;
}
}
方案三:
package cn.com.huawei;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexTest {
public static void main(String args[]){
String str = "abc123edf123123";
Pattern p = Pattern.compile("123");
Matcher m = p.matcher(str);
int count = 0;
while(m.find()){
count ++;
}
String result=m.replaceAll("");
System.out.println(result+"_"+count);
}
}
方案四:
package cn.com.huawei;
public class TestSplit
{
public static void main(String[] args)
{
String str = "abc123edf123123123";
int count = 0;
String[] ary = str.split("123",1000);
String result="";
for(int i=0;i<ary.length;i++)
{
result+=ary[i];
}
System.out.println(result+"_"+(ary.length-1));
}
}
分享到:
相关推荐
【华为OD机试真题2023JAVA】寻找符合要求的最长子串.html
该标签表明了这份资源的主题是计算机面试题,涵盖了腾讯、华为、金山等大型企业面试题。 部分内容: 1. 判断链表中是否有环:该问题要求编写一个函数来判断链表中是否有环。解决方法是使用两个指针,一个指针每次...
【标题】华为技术面试题1,图片的形式展现 在华为春季招聘的技术面试中,面试官可能会采用图片形式的题目来考察应聘者对于字符串处理、统计分析以及问题解决的能力。这类问题通常具有一定的创新性和实践性,旨在...
【免费题库】华为OD机试 - 寻找相同子串(Java & JS & Python & C & C++).html付费专栏内容,免费下载,多种语言解法
华为C语言面试题_嵌入式-常用知识&面试题库_大厂面试真题.doc 该资源汇集了华为C语言面试题,涵盖了嵌入式系统常用知识和面试题库,旨在帮助开发者更好地准备面试和提高编程能力。 1. 判断链表中是否有环 在链表...
4. **更新最长子串**: 如果当前连续字符数量大于已知最长子串,则更新最长子串的信息。 5. **返回结果**: 循环结束后返回最长子串的起始位置。 ### 2. 在给定内存区域搜索给定字符 此部分代码用于在给定的字符串中...
根据给定文件中的内容,我们可以总结出以下几个与C语言相关的知识点: ### 1. 查找相同字符组成的最长子串 **题目描述**:编写一个C函数,在字符串中找到由同...以上就是给定文件中的五个C语言编程面试题的详细解析。
华为od算法题,100分题-最多提取子串数目-Java解法
"华为面试编程题" 华为软件校园招聘编程测验类别中,软件 C 语言编程题是其中的一部分。该类别共有两题,第一题占 40 分,第二题占 60 分,总分为 100 分。下面是对这两道题的分析和解释。 第一题:删除字符串中...
华为OD(可能是Operation Director或Online Judge的简称)的练习题常常会涵盖这类问题,旨在提升开发者的问题解决能力和逻辑思维能力。本题库题解针对的就是华为OD中的一道关于公共字符串计算的题目。 公共字符串...
公共子串计算,输入两个字符串,忽略大小写,输出公共子串的最大长度
华为OD(Open Door)模拟题是华为公司为了考察应聘者的技术能力和思维能力而设计的一系列面试题目。这类题目通常涵盖计算机科学的基础知识、算法设计、编程语言的应用等多个方面,旨在全面评估候选人的综合素质。在...
题目中给出的解决方案使用了C语言,主要涉及到字符串处理函数`strlen`,`memcpy`和`strcmp`。`strlen`用于计算字符串长度,`memcpy`用于复制字符串,`strcmp`用来比较两个字符串是否相等。在遍历过程中,当找到子串...
该题目要求在给定的字符串中删除所有的指定子串出现,并统计被删除的子串数量。示例代码中通过`delete_sub_str`函数实现了这一功能。这里的关键点在于如何有效地识别并删除子串。 #### 关键技术点 1. **字符串复制...
### 华为模拟机试题知识点解析 ...以上就是华为模拟机试题中的几个经典问题及解决方案的详细介绍。这些问题涵盖了算法设计、数据结构应用等多个方面,对于准备参加华为技术面试的应聘者来说具有很高的参考价值。
例如,比较两个数组的不同元素的个数,删除子串,约瑟夫环等等。 在编写代码时,考生需要注意一些重要的细节。首先,代码必须符合考试系统的规定格式,否则将无法得分。其次,代码需要经多次测试,以确保代码的正确...
【标签】"华为od 练习题" 这两个标签指出了该内容与华为OD相关,同时是练习性质的材料,意味着它们可能是为了准备华为公司的面试或者内部培训而设计的,旨在测试或提升开发者对字符串处理的实际操作能力。...
根据给定文件的信息,我们可以总结出两个主要的知识点:第一个是关于如何在字符串中删除所有指定的子串;第二个是关于高精度整数加法的实现。下面将对这两个知识点进行详细阐述。 ### 一、删除字符串中所有给定的...