阿里2020秋招研发工程师java笔试编程题

男女挨着坐成环,求男生挨着连续最多女生个数,如输入bgbbbgbggbgbg,输出3

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Main {

/** 请完成下面这个函数,实现题目要求的功能 **/
 /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^  **/
    static String getIndexAndLongest(String users) {

    	return null;
    }
    static void reset(List<Main.MyItem> ls) {
    	 for(int i=0;i<ls.size();i++) {
         	
         	Main.MyItem tItem = ls.get(i);
         	tItem.setIscheck(false);
         		
         	
         }
    }
    
    public static void main(String[] args){
//        Scanner in = new Scanner(System.in);
//        String res;
//            
//        String _users;
//        try {
//            _users = in.nextLine();
//        } catch (Exception e) {
//            _users = null;
//        }
    	String _users = "bgbbbgbggbgbg";
//        res = getIndexAndLongest(_users);
//        System.out.println(res);
        
        List<Main.MyItem> ls = new ArrayList<Main.MyItem>();
        
        for(int i=0;i<_users.length();i++) {
        	Main.MyItem tItem = new Main.MyItem();
        	tItem.setSex(String.valueOf(_users.charAt(i)));
        	tItem.setIndex((String.valueOf(i)));
        	tItem.setIscheck(false);
        	ls.add(tItem);
        }
        for(int i=0;i<ls.size();i++) {
        	Main.MyItem tItem = ls.get(i);
        	if(i==0) {
        		ls.get(i).setPre(ls.get(ls.size()-1));
        	}else {
        		ls.get(i).setPre(ls.get(i-1));
			};
			if(i==(ls.size()-1)) {
				ls.get(i).setNext(ls.get(0));
			}else {
				ls.get(i).setNext(ls.get(i+1));
			};
			
        }
        
        List<Integer> re= new ArrayList<Integer>();
        Integer max_g = 0;
        for(int i=0;i<ls.size();i++) {
        	int r = 0;
        	Main.MyItem tItem = ls.get(i);
        	if(tItem.getSex().equals("b")) {
        		Main.MyItem t_pre = tItem.getPre();
        		while (t_pre.getSex().equals("g")&&t_pre.getIscheck()==false) {
					r +=1;
					t_pre.setIscheck(true);
					t_pre = t_pre.getPre();
					
				}
        		
        		Main.MyItem t_next = tItem.getNext();
        		while (t_next.getSex().equals("g")&&t_next.getIscheck()==false) {
					r +=1;
					t_next.setIscheck(true);
					t_next = t_next.getNext();
					
				}
        	}
        	re.add(r);
        	max_g = Math.max(r, max_g);
        	reset(ls);
        		
        	
        	
        }
        System.out.println(max_g);
       
        
    }
    public static class MyItem{
    	public String getIndex() {
			return index;
		}
		public MyItem() {
			
		}
		
		public void setIndex(String index) {
			this.index = index;
		}
		public String getSex() {
			return sex;
		}
		public void setSex(String sex) {
			this.sex = sex;
		}
		public MyItem getPre() {
			return pre;
		}
		public void setPre(MyItem pre) {
			this.pre = pre;
		}
		public MyItem getNext() {
			return next;
		}
		public void setNext(MyItem next) {
			this.next = next;
		}
		String index;
    	String sex;
    	MyItem pre;
    	MyItem next;
    	Boolean ischeck;
		public Boolean getIscheck() {
			return ischeck;
		}
		public void setIscheck(Boolean ischeck) {
			this.ischeck = ischeck;
		}
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页