字符串中找出最后一个单词的长度,数字+1,只出现一次的数,合并两个有序数组,回文串。

/给定一个仅包括大小写字母和空格 ‘  ’ 的字符串 , 返回其最后一个单词的长度
//如果不存在最后一个单词,请返回0


 

package day_7_1;
//给定一个仅包括大小写字母和空格 ‘  ’ 的字符串 , 返回其最后一个单词的长度
//如果不存在最后一个单词,请返回0
public class txt_1 {
	 public static void main(String[] args) {
	        //给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词请返回 0
	        String str = "Hello world";
	        System.out.println(a1(str));
	    }

	    private static int a1(String str) {
	     
	        String[] arr=str.split(" ");
	        if (str.isEmpty()) {
	            return 0;
	        }
	        else {
	            String str1=new String(arr[arr.length-1]);
	            return str1.length();
	        }
	    }
}

查看数组中只出现一次的数

方法一 使用^方法,两个相同的数两次^值位0;

package day_7_1;
//只出现一次的数字
public class txt_04 {
	public static void main(String[] args){
		int []  nums={1,2,3,4,1,2,3};
	
		
		
        int ans = nums[0];
        if (nums.length > 1) {
            for (int i = 1; i < nums.length; i++) {
                ans = ans ^ nums[i];
            }
        }
        System.out.println(ans) ;
  	}
}

方法二

package day_7_1;
//找出数组中出现一次的数
public class txt_04_1 {
	public static void main(String[] args){
		 int []arr={4,2,1,2};
		 int num=a1(arr);
		 System.out.println(num);
		 
	}
	public static int a1(int[] arr){
		for(int i=0;i<arr.length;i++){
			int count=0;
		for(int j=0;j<arr.length;j++){
			if(arr[i]==arr[j]){
				count++;
			}
		
		    if(count==1){
			return arr[i];
		    }
	   }
     }return -1;
   }
}

加一

package day_7_1;
//加1
public class txt_jia1 {
	public static void main (String[] args){
		 int []arr={999};
		 int [] newarr=a1(arr);
		 for (int i=0;i<newarr.length;i++){
			 System.out.println(newarr[i]);
		 }
	}
	public static int[] a1(int[]nums){
		for(int i= nums.length-1;i>=0;i--){
		   if(nums[i]==9){
			   nums[i]=0;
			   
		   }else {
			   nums[i]=nums[i]+1;
			 return nums;
		   }
	}
	int [] newarr=new int [nums.length+1];
	newarr[0]=1;
	return newarr;
}
}

合并两个有序数组

package day_7_1;
//合并两个有序数组
public class txt_02_03 {
	public static void main(String[] args){
		int []nums1 = {1,2,3,0,0,0};int m = 3;
		int []  nums2 = {2,5,6}; int  n=3;
	
			a1(nums1,m,nums2,n);
			
		
	}
	public static void a1(int[] nums1,int m,int[]nums2,int n){
		//将nums2放到nums1中
		for(int i=0;i<n;i++){
			nums1[m]=nums2[i];
			m++;
		}
		//排序
		for(int i=0;i<nums1.length-1;i++){
			for(  int j=0;j<nums1.length-1;j++){
				if(nums1[j]>nums1[j+1]){
					int temp=nums1[j];
					nums1[j]=nums1[j+1];
					nums1[j+1]=temp;
					
				}
			}
		}  for(int m1 :nums1){
			System.out.print(m1+"  ");
		}
	}
		
}
	
	

回文串

package day_7_1;
//验证是否是回文串
public class txt_05 {
	public static void main(String[] args){
		String string="A man , a plan , a canal : Panama";
		boolean flag=a1(string);
		System.out.println(flag);	
	} 
	public static boolean a1(String str){
		//判断空字符
		if(str==null){
			return false;
		}if(str.length()==0){
			return true;
		}
		//只需考虑数字和大小写字母,将其他字符去除
		String newstr=str.replaceAll("[^A-Za-z0-9]","");
		//反转字符串
		StringBuilder sb=new StringBuilder(newstr);
		//反转数据
		sb.reverse();
		//转换为String
		String newstrR=sb.toString();
		//不区分大小写比较两个字符串
		return newstr.equalsIgnoreCase(newstrR);	
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值