`

两道算法题

阅读更多

1. 字符串截取,输入为一个字符串和一个数字,但是如果遇到汉字不能只截取半个汉字。

 

package cn.lifx.test;

public class GetNBitChar 
{
	public static void main(String[] args)
	{
		String str1 = "中abc国人def伟大";
		
		GetNBitChar test = new GetNBitChar();
		
		String str2 = test.getStr(str1, 1);
		System.out.println(str2);
		
		str2 = test.getStr(str1, 4);
		System.out.println(str2);
		
		str2 = test.getStr(str1, 6);
		System.out.println(str2);
		
		str2 = test.getStr(str1, 8);
		System.out.println(str2);
		
		str2 = test.getChineseChars(str1);
		System.out.println(str2);
	}
	
	//获取前n个字节
	public String getStr(String str, int n)
	{
		String temp = "";
		
		int count = 0;
		int index = 1;
		
		while(count < n)
		{
			if(str.substring(index-1, index).getBytes().length == 1)
			{
				count++;
			}
			else
			{
				count = count + 2;
			}
			
			index++;
		}
		
		temp = str.substring(0, index-1);
		
		return temp;
	}
	
	//获得所有汉字
	public String getChineseChars(String str)
	{
		String temp = "";
		StringBuffer sb = new StringBuffer();
		
		for(int i=1; i<=str.length(); i++)
		{
			temp = str.substring(i-1, i);
			if(temp.getBytes().length == 2)
			{
				sb.append(temp);
			}
		}
		
		return sb.toString();
	}
}

 

 

2. 一个数组有2n个整数,其中有n个奇数,n个偶数,要求把奇数放在奇数位置,偶数放在偶数位置。

 

package cn.lifx.test;

public class SortOddAndEvenNum 
{
	public static void main(String[] args)
	{
		int[] arr = {2, 3, 4, 6, 8, 5, 7, 9};
		
		SortOddAndEvenNum sort = new SortOddAndEvenNum();
		
		sort.Display(arr, "Before:");
		
		sort.Sort(arr);
		
		sort.Display(arr, "After:");
	}
	
	public void Sort(int[] arr)
	{
		int index1 = 0;
		int index2 = 1;
		
		int temp = 0;
		int n = arr.length;
		
		while(index1 < n && index2 < n)
		{
			while(arr[index1] % 2 != 0)
			{
				index1 += 2;
			}
			
			while(arr[index2] % 2 == 0)
			{
				index2 += 2;
			}
			
			temp = arr[index1];
			arr[index1] = arr[index2];
			arr[index2] = temp;
			
			index1 += 2;
			index2 += 2;
		}
	}
	
	public void Display(int[] arr, String str)
	{
		System.out.println(str);
		for(int i=0; i<arr.length; i++)
		{
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}
}

  

 

0
0
分享到:
评论

相关推荐

    华为的两道算法笔试题及答案

    以上是华为笔试中的两道算法题及其解答分析。第一题主要考察了如何在不使用额外空间的情况下对数组进行原地排序的能力;第二题则侧重于穷举搜索策略的应用,以及对组合问题的处理能力。这两道题目不仅考察了基本的...

    10道经典算法习题与详细解析.docx

    10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典算法习题与详细解析.docx 10道经典...

    算法入门习题100道

    "算法入门习题100道"这个资源为新手提供了一个绝佳的学习平台,通过100道习题来逐步提升对算法的理解和应用能力。 这些习题可能涵盖了以下几个核心算法领域: 1. **排序算法**:包括但不限于冒泡排序、插入排序、...

    面试中经常被问到的80道算法题

    算法面试题知识点总结 ...这八十道算法面试题涵盖了广泛的知识点,包括数据结构、算法设计、时间复杂度分析等多方面的内容。通过学习和实践这些题目,我们可以提高自己的编程能力和解决问题的能力。

    50道Java程序算法题

    这份"50道Java程序算法题"的压缩包显然旨在帮助开发者提升算法设计和实现能力。下面,我们将深入探讨这些标签所涵盖的知识点,并根据提供的文件名推测可能的结构。 1. **Java基础**:作为Java程序员,对语言的基础...

    java经典算法90题含源码及答案.rar

    通过解决这些算法题,开发者可以锻炼逻辑思维,理解和掌握数据结构,如数组、链表、栈、队列、树、图等,以及排序、搜索、图论、动态规划等核心算法。 在JAVA经典算法40题.doc中,可能包含的题目类型有递归、分治、...

    java经典算法题

    Java经典算法题是程序员在开发过程中常常需要面对的挑战,它们可以帮助我们提升编程思维,优化问题解决能力,尤其是在处理复杂数据结构和高效计算时显得尤为重要。这个压缩包中包含了一份名为"JAVA经典算法40题.doc...

    几道算法选择题 几道算法选择题

    算法选择题知识点总结 一、分支限界法与回溯法 * 分支限界法和回溯法都是在问题的解空间树 T 上搜索问题的解,二者的区别在于:分支限界法的目标是寻找满足约束条件的解,而回溯法的目标是寻找问题的所有可能解。 ...

    java笔试算法题40道

    根据提供的文件信息,我们可以归纳总结出以下几个主要的IT知识点: ### 1. 兔子繁殖问题(斐波那契数列) ...这些知识点涵盖了常见的数据结构、算法应用以及Java编程技巧,对于初学者来说是非常好的学习资源。

    常用算法介绍,及其几道算法题,常见算法包括排序算法、搜索算法、动态规划、贪心算法、回溯算法、分治算法等

    常用算法介绍,及其几道算法题,常见算法包括排序算法、搜索算法、动态规划、贪心算法、回溯算法、分治算法等

    76经典道算法题及解答

    《76经典道算法题及解答》是一份精心准备的资源,它不仅为编程学习者提供了丰富的实战练习机会,也为那些希望在职场上脱颖而出的程序员提供了宝贵的复习资料。通过解决这76个精选的算法题目,学习者可以系统地锻炼...

    Android面试算法题

    #### 一、基础算法题:找出未放入数组中的两个数 **题目背景:** 在Android开发过程中,处理数组是非常常见的需求之一。此题旨在考察应聘者对基本数据结构(如数组)的理解以及解决实际问题的能力。 **题目描述:*...

    JAVA经典算法面试39题及答案

    本文将详细探讨39道JAVA经典算法面试题目,每题都附带答案和解析,从而帮助读者深入理解并提升自身在JAVA编程中的算法应用能力。 首先,我们必须明确算法的定义和重要性。算法是计算机科学的核心,它是一系列解决...

    算法面试题100道for阿里、百度、腾讯、京东、美团、今日头条.pdf

    本书《算法面试题100道for阿里、百度、腾讯、京东、美团、今日头条.pdf》是一份面向希望进入中国顶尖互联网公司(如阿里、百度、腾讯、京东、美团、今日头条等)工作,尤其是软件开发岗位的求职者,所准备的面试材料...

    java的2道算法题,笔试面试题

    标题中的两道算法题目是Java面试中常见的类型,它们分别涉及到数组操作和图的最短路径问题,这对于应届毕业生在IT公司的招聘过程中非常重要。以下是这两道题目的详细解析及解决方案。 第一题:寻找两个有序数组的...

    26道经典算法笔试题

    下面分别解析这26道算法笔试题中的知识点: 1. **整数逆序**: 这是一个递归实现整数逆序存储的问题。通过不断地将整数的个位数存入数组,并对原数进行除10操作,直至原数为0。递归终止条件是n小于或等于10。 2. ...

    JAVA经典算法30题

    对于Java程序员而言,掌握一系列经典的算法题是提升自身竞争力的重要途径。本文将围绕“JAVA经典算法30题”这一主题,详细解读其中几个算法的实现逻辑和应用场景,希望能对读者有所启发。 首先,让我们来看第一个...

    自己总结的二十四道js算法题

    js所有的算法,自己总结的,如有遗漏,请留言。希望可以帮助到需要的人

    IT公司笔试算法题

    以上题目都是IT公司在笔试中常见的算法题,旨在检验应聘者的编程基础、逻辑思维能力和问题解决能力。对于准备面试或提高编程技能的人员来说,理解和掌握这些基本算法是非常重要的。通过解决这些问题,可以提升对递归...

Global site tag (gtag.js) - Google Analytics