[关闭]
@XQF 2018-03-07T22:59:13.000000Z 字数 861 阅读 1189

如何判断两个字符串是否由相同的字符组成?

数据结构与算法

看清,。,。不是问的是不是相等,相等只是其中一种情况.假如不是需要每个相同字符的个数也一样的话比较麻烦,倘若要求一样那就直接排序后euqals

1.首发----相等字符的个数不等,。,时间复杂度不是很好

  1. public class Solution {
  2. public boolean hasEqualChars(String a, String b) {
  3. if (a == null || b == null) {
  4. return false;
  5. }
  6. if (a.equals(b)) {
  7. return true;
  8. }
  9. char[] charA = a.toCharArray();
  10. char[] charB = b.toCharArray();
  11. int len = 'z' - 'A' + 1;
  12. int[] book = new int[len];
  13. boolean result = true;
  14. out:
  15. for (char i = 'A'; i <= 'z'; i++) {
  16. int temp = i - 'A';
  17. for (int j = 0; j < charA.length; j++) {
  18. if (i == charA[j]) {
  19. book[temp] = 1;
  20. }
  21. }
  22. for (int j = 0; j < charB.length; j++) {
  23. if (i == charB[j]) {
  24. if (book[temp] == 1) {
  25. book[temp] = 0;
  26. } else {
  27. result = false;
  28. break out;
  29. }
  30. }
  31. }
  32. }
  33. for (int i : book) {
  34. if (i != 0) {
  35. result = false;
  36. }
  37. }
  38. return result;
  39. }
  40. public static void main(String[] args) {
  41. Solution solution = new Solution();
  42. String a = "Aardr";
  43. String b = "Aadr";
  44. System.out.println(solution.hasEqualChars(a, b));
  45. }
  46. }

2.相等字符的个数相等

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注