`

气泡滚大——剔除线性数据中的杂质

 
阅读更多

    这是一道Java的面试题,但是我总结了除了一种自称为“气泡滚大”的方法。适用场景——

    剔除线性数据中的杂质 :O(n)时间从前到后扫描数据,杂质如同上升的气泡越滚越大,最终都浮出水面(被清理掉)。

/**
 * Java面试题:一个很大的字符串如下a,空格,b,空格,c,空格,d.....如何去掉空格  不能用复制的方式,机子的内存已基本被字符串所占<br/>
 * @author Sam
 */
public class Test1 {
	/**
	 * 打印str[l~r]
	 */
	static void print(char[] str, int l, int r) {
		for (int i = l; i <= r; i++) {
			System.out.print(str[i]);
		}
		System.out.println();
	}

	/**
	 * @return	去掉空格后最后字符的位置strR(new)
	 */
	private static int fun(char[] str, int strL, int strR) {
		//找到第一个空格
		int l=strL;
		while(str[l]!=' ')
			l++;
		int r=l;
		
		//[l,r]是已经搜集到的空格,就像水中的气泡,气泡不断变大
		while(r<=strR-1){
			if(str[r+1]!=' '){//下一个是字符
				str[l]=str[r+1];
				l++;
				r++;
			}else{//下一个是空格
				r++;
			}
		}
		
		//[strL,l-1]是去掉空格后的字符串,[l,r]是空格
		return l-1;
	}

	public static void main(String[] args) {
		char[] str = "a b c b d c c c a b ".toCharArray();

		print(str,0,str.length-1);
		int newStrR=fun(str,0,str.length-1);
		print(str,0,newStrR);
	}
}
 

 

分享到:
评论

相关推荐

    蝴蝶 气泡 水晶心形——蓝色浪漫情人节ppt模板.rar

    标题中的“蝴蝶 气泡 水晶心形——蓝色浪漫情人节ppt模板.rar”表明这是一个专门为情人节设计的PowerPoint(PPT)模板,其中包含了浪漫元素,如蝴蝶、气泡和水晶心形图案,整体风格以蓝色为主,营造出一种清新、梦幻...

    安卓Android源码——ListView滚动气泡提示.rar

    这个“安卓Android源码——ListView滚动气泡提示.rar”压缩包很可能是提供了一个关于如何在ListView滚动时显示气泡提示的示例代码。这种功能常用于通知用户一些重要的信息或者在列表项上显示动态更新的数据。 在...

    安卓Andriod源码——ListView滚动气泡提示.zip

    总之,滚动气泡提示是一种增强用户交互体验的有效方式,特别是在处理大量数据的ListView中。通过自定义ListView和适配器,我们可以灵活地实现这一功能,确保用户不会错过任何重要信息。这个压缩包中的源码实例提供了...

    安卓Android源码——ListView滚动气泡提示.zip

    这份"安卓Android源码——ListView滚动气泡提示.zip"的压缩包很可能是包含了一个实现此类功能的示例项目或者库。 首先,我们来了解一下ListView的基本概念。ListView是Android SDK中的一个视图组件,主要用于展示长...

    ListView滚动气泡提示android源码

    7. **性能优化**:考虑到ListView在大数据量时的性能,开发者需要注意避免在滚动过程中执行耗时操作,确保界面流畅。 8. **版本兼容性**:由于Android设备型号众多,系统版本差异大,开发者需要考虑代码的兼容性...

    Andriod——短信气泡

    Andriod——短信气泡

    最大气泡压力法测表面张力实验数据处理的改进.pdf

    此外,通过实验数据分析,验证了计算机拟合方法在物理化学实验中处理数据的优越性,特别是非线性拟合方法在提高精确度方面具有显著优势。 通过本文,读者可以了解到MATLAB在物理化学实验数据处理中的应用,以及如何...

    最大气泡法测溶液表面张力实验数据处理的改良.pdf

    在本文档中,讨论了最大气泡法测量溶液表面张力实验的数据处理改良。最大气泡法是物理化学实验中用于测定液体表面张力的基本技术之一。实验通过测量在液面上形成气泡时所需克服的表面张力而进行。由于传统的手工图解...

    安卓Android源码——仿iphone气泡短信DEMO.zip

    【标题】"安卓Android源码——仿iphone气泡短信DEMO.zip" 提供的是一个针对Android平台的项目,目标是实现类似iPhone中的气泡样式短信界面。这种界面设计常见于即时通讯应用,通过气泡来展示对话内容,使得用户界面...

    Android线性布局实现聊天气泡+多样化图层效果

    在这个“Android线性布局实现聊天气泡+多样化图层效果”的项目中,我们将探讨如何使用线性布局来构建一个具有聊天气泡效果的应用,同时实现多样化的图层效果,以增强用户体验。 首先,聊天气泡是聊天应用中不可或缺...

    ArcGIS教程:创建气泡图

    在气泡图中,每个数据点不仅代表两个变量(通常在X轴和Y轴上表示),而且还通过第三个变量——气泡的大小来表示额外的信息。这种三维表达方式使得气泡图成为一种非常强大的工具,能够直观地展示复杂的数据关系。 ##...

    ListView滚动气泡提示

    因此,当ListView滚动时,我们需要根据当前显示的数据项来更新气泡中的提示内容。这可能涉及到对Adapter数据的操作和回调。 6. **动画效果**:为了让气泡提示更加吸引用户的注意力,我们还可以添加一些动画效果,如...

    IOS应用源码——威信的聊天气泡效果.zip

    本资源“IOS应用源码——威信的聊天气泡效果.zip”提供了一个实现这一效果的示例代码,对于学习iOS开发尤其是自定义UI控件的开发者来说,是一个非常有价值的参考资料。 首先,我们要理解“聊天气泡效果”的概念。在...

    IOS应用源码——威信的聊天气泡效果.rar

    在实际项目中,这个源码可能还会包含其他组件,如图片加载库(如SDWebImage)、网络请求库(如AFNetworking)等,以处理气泡中的图片数据。 总的来说,"IOS应用源码——威信的聊天气泡效果.rar"提供了学习和实践iOS...

    IOS应用源码——威信的聊天气泡效果2.rar

    综上所述,"IOS应用源码——威信的聊天气泡效果2.rar"中的代码可能涵盖了上述多个知识点,为开发者提供了一套完整的聊天气泡实现方案。通过学习和理解这些技术,开发者可以为自己的iOS应用构建出美观且功能完善的...

    Android源码——仿百度地图气泡程序源码.zip

    本资源"Android源码——仿百度地图气泡程序源码.zip"提供了一套实现此类功能的示例代码,旨在帮助开发者理解和实践如何在Android应用中创建自定义地图气泡。 首先,我们要理解Android中的地图API,主要是Google ...

    Excel模板2-气泡对比图.zip

    气泡图是一种二维图表,它通过三个主要元素——X轴、Y轴以及气泡大小——来展示数据。X轴和Y轴通常代表两个定量变量,而气泡的大小则用来表示第三个定量变量。这种图表特别适用于展示三个变量之间的相互关系,尤其是...

Global site tag (gtag.js) - Google Analytics